目錄
這里可以配合raise()和lower()這兩個函數(shù)來使用!
用2個label,點(diǎn)擊誰誰就浮在界面的最上面,很簡單的代碼,程序運(yùn)行截圖如下:
源碼如下:
widget.h
#ifndef WIDGET_H#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACEclass QLabel;QT_END_NAMESPACEnamespace Ui {class Widget;}class Widget : public QWidget{ Q_OBJECTpublic: explicit Widget(QWidget *parent = 0); void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE; ~Widget();private: Ui::Widget *ui; bool m_otherWidget; QList<QLabel*> m_list;};#endif // WIDGET_H
widget.cpp
#include "widget.h"#include "ui_widget.h"#include <QLabel>#include <QMouseEvent>#include <QDebug>Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); m_otherWidget = false; QLabel *label1 = new QLabel(this); label1->setText(" label 1"); label1->setGeometry(60, 60, 160, 110); label1->setStyleSheet("background-color: rgb(0,0,0); color: rgb(255,0,0);"); label1->stackUnder(this); QLabel *label2 = new QLabel(this); label2->setGeometry(50, 50, 150, 100); label2->setText(" label 2"); label2->setStyleSheet("background-color: rgb(0,255,255); color: rgb(255,0,0);"); label2->stackUnder(this); label1->raise(); label2->raise(); qDebug()<<this->children(); m_list<<label1; m_list<<label2;}void Widget::mouseReleaseEvent(QMouseEvent *event){ if(event->button() == Qt::LeftButton){ if(m_otherWidget){ m_list[0]->raise(); } else{ m_list[1]->raise(); } m_otherWidget = !m_otherWidget; event->accept(); this->update(); }}Widget::~Widget(){ delete ui;}
main.cpp
#include "widget.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; w.show(); return a.exec();}