日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

qt 收缩窗体

發布時間:2024/7/23 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qt 收缩窗体 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

效果圖:



功能拆分圖:



代碼:

QtStubOption.cpp

QtSubOption::QtSubOption(QWidget *parent): QLabel(parent) {ui.setupUi(this);m_GuiShow = SHOWGUI;setMouseTracking(true);m_PicStatus[SHOWGUI] = ":/QtGuiApplication3/tile";m_PicStatus[HIDEGUI] = ":/QtGuiApplication3/tile2";m_PicStatus[HIDEGUIMOVE] = ":/QtGuiApplication3/tile2_move";m_PicStatus[HIDEGUIPRESS] = ":/QtGuiApplication3/tile2_pressed";QPixmap pixmapTitle(m_PicStatus[SHOWGUI].c_str());pixmapTitle = pixmapTitle.scaled(208, 24, Qt::KeepAspectRatio);setPixmap(pixmapTitle);setWindowFlags(Qt::FramelessWindowHint);setAttribute(Qt::WA_TranslucentBackground);setAlignment(Qt::AlignTop);setFixedSize(208, 24);m_ParentApp = (QtGuiApplication3 *)parent; }QtSubOption::~QtSubOption() { }void QtSubOption::mouseReleaseEvent(QMouseEvent * ev) {//點擊標題欄的消息if (m_GuiShow == SHOWGUI){m_ParentApp->buttomWidget->hide();m_GuiShow = HIDEGUI;QPixmap pixmapTitle(m_PicStatus[HIDEGUI].c_str());pixmapTitle = pixmapTitle.scaled(208, 24, Qt::KeepAspectRatio);setPixmap(pixmapTitle);}else{m_ParentApp->buttomWidget->show();m_GuiShow = SHOWGUI;QPixmap pixmapTitle(m_PicStatus[SHOWGUI].c_str());pixmapTitle = pixmapTitle.scaled(208, 24, Qt::KeepAspectRatio);setPixmap(pixmapTitle);} }void QtSubOption::mouseMoveEvent(QMouseEvent * ev) { }void QtSubOption::mousePressEvent(QMouseEvent * ev) {if (m_GuiShow == HIDEGUI){QPixmap pixmapTitle(m_PicStatus[HIDEGUIPRESS].c_str());pixmapTitle = pixmapTitle.scaled(208, 24, Qt::KeepAspectRatio);setPixmap(pixmapTitle);} }void QtSubOption::enterEvent(QEvent *) {if (m_GuiShow == HIDEGUI){//OutputDebugStringA("1111");QPixmap pixmapTitle(m_PicStatus[HIDEGUIMOVE].c_str());pixmapTitle = pixmapTitle.scaled(208, 24, Qt::KeepAspectRatio);setPixmap(pixmapTitle);} }void QtSubOption::leaveEvent(QEvent *) {if (m_GuiShow == HIDEGUI){//OutputDebugStringA("2222");QPixmap pixmapTitle(m_PicStatus[HIDEGUI].c_str());pixmapTitle = pixmapTitle.scaled(208, 24, Qt::KeepAspectRatio);setPixmap(pixmapTitle);} }

QtGuiApplication3.cpp

QtGuiApplication3::QtGuiApplication3(QWidget *parent): QMainWindow(parent) {ui.setupUi(this);QtSubOption *tileLabel = new QtSubOption(this);QtSubOption *tileLabel2 = new QtSubOption(this);buttomWidget = new QWidget(this);buttomWidget->setFixedSize(208, 250);QPushButton *modalBtn2 = new QPushButton(this);modalBtn2->setFixedSize(48, 48);modalBtn2->setStyleSheet(QLatin1String("QPushButton{border-image: url(:/QtGuiApplication3/buttom1);}\n""QPushButton:pressed{border-image: url(:/QtGuiApplication3/buttom1_press);}"));QPushButton *modalBtn3 = new QPushButton(this);modalBtn3->setStyleSheet(QLatin1String("QPushButton{border-image: url(:/QtGuiApplication3/buttom2);}\n""QPushButton:pressed{border-image: url(:/QtGuiApplication3/buttom2_press);}"));modalBtn3->setFixedSize(48, 48);QPushButton *modalBtn4 = new QPushButton(this);modalBtn4->setStyleSheet(QLatin1String("QPushButton{border-image: url(:/QtGuiApplication3/buttom3);}\n""QPushButton:pressed{border-image: url(:/QtGuiApplication3/buttom3_press);}"));modalBtn4->setFixedSize(48, 48);QGridLayout *pGridLayoutButtom = new QGridLayout(this);pGridLayoutButtom->setSpacing(20);pGridLayoutButtom->addWidget(modalBtn2, 0 , 0);pGridLayoutButtom->addWidget(modalBtn3, 0, 1);pGridLayoutButtom->addWidget(modalBtn4, 0, 2);pGridLayoutButtom->setAlignment(Qt::AlignTop);//buttonWidget->setWindowFlags(Qt::FramelessWindowHint);//buttonWidget->setAttribute(Qt::WA_TranslucentBackground);buttomWidget->setStyleSheet("background-color: rgb(90, 90, 90)");buttomWidget->setLayout(pGridLayoutButtom);QWidget *pWidget = new QWidget(this);QVBoxLayout *pBoxLayout = new QVBoxLayout(this);pBoxLayout->setSpacing(0);pBoxLayout->addWidget(tileLabel);pBoxLayout->addWidget(buttomWidget);pBoxLayout->addSpacing(10);pBoxLayout->addWidget(tileLabel2);pBoxLayout->addStretch();pWidget->setLayout(pBoxLayout);QScrollArea *scrollArea = new QScrollArea(this);scrollArea->setGeometry(0, 0, 225, 500);scrollArea->setBackgroundRole(QPalette::Dark);scrollArea->setWidget(pWidget);scrollArea->setAlignment(Qt::AlignCenter);scrollArea->setFixedWidth(225);scrollArea->setWidgetResizable(true);QGridLayout *mainLayout = new QGridLayout(this);QGridLayout *leftLayout = new QGridLayout();leftLayout->addWidget(scrollArea);QGridLayout *rightLayout = new QGridLayout();QPushButton *OkBtn = new QPushButton(tr(u8"確定"));rightLayout->addWidget(OkBtn);mainLayout->addLayout(leftLayout, 0, 0);mainLayout->addLayout(rightLayout, 0, 1);QDialog *dlgWidget = new QDialog;dlgWidget->setStyleSheet("background-color: rgb(90, 90, 90)");setCentralWidget(dlgWidget);dlgWidget->setLayout(mainLayout); }

總結

以上是生活随笔為你收集整理的qt 收缩窗体的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。