麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

Qt中的置頂窗口

2019-11-09 18:31:20
字體:
來源:轉載
供稿:網友

qt中置頂窗口一般都知道用這個函數:

this->setWindowFlags(Qt::FramelessWindowHint);

但是這樣會有一個問題:

當我在程序啟動顯示窗口的時候,不停的點擊其他窗口,使當前運行的程序窗口獲取不到焦點,那么程序窗口即使設置了FramelessWindowHint flag,

主窗口也并沒有置頂。代碼如下:

main.cpp

#include "mainwindow.h"#include <Qapplication>int main(int argc, char *argv[]){    QApplication a(argc, argv);    MainWindow w;    w.show();    return a.exec();}
#include "mainwindow.h"#include <QApplication>#include <QDesktopWidget>#include <QThread>MainWindow::MainWindow(QWidget *parent)    : QMainWindow(parent){    this->setFixedSize(QSize(QApplication::desktop()->width(), QApplication::desktop()->height()));    // 一般情況下會自定義關閉按鈕    this->setWindowFlags(Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint);    this->setAutoFillBackground(true);    // 假設有其他資源需要初始化,如果構造時間較短,不容易看到效果。    QThread::sleep(1);}MainWindow::~MainWindow(){}

程序開始運行后不停點擊其他窗口(如QtCreator),就會發現窗口程序出現在任務欄,但是窗口并沒有置頂。

具體原因還有待進一步研究。

嘗試多種解決辦法:

1.點擊一個按鈕后show出一個子置頂窗口。 (無效)

2.點擊一個按鈕后show出一個新的窗口(subwindow屬性,父窗口為空,用智能指針管理內存)。(有效,但是新show出來的窗口不能響應事件,被最開始的窗口覆蓋掉了);

...

后來想到直接用windows的置頂窗口的函數,但是還是會出現剛開始的那個問題。

然后嘗試其他各種怪招。。。

最后無意之間將show();這句代碼寫到置頂窗口的構造函數就行了!

最終代碼如下:

main.cpp

#include "mainwindow.h"#include <QApplication>#include <windows.h>int main(int argc, char *argv[]){    QApplication a(argc, argv);    MainWindow w;    //[!] 新增代碼, 需要在.PRo文件加上 LIBS += -lUser32    ::SetWindowPos((HWND)w.winId(), HWND_TOPMOST, 0, 0, w.width(), w.height(), SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);    return a.exec();}mainwindow.cpp
#include "mainwindow.h"#include <QApplication>#include <QDesktopWidget>#include <QThread>MainWindow::MainWindow(QWidget *parent)    : QMainWindow(parent){    this->setFixedSize(QSize(QApplication::desktop()->width(), QApplication::desktop()->height()));    // 一般情況下會自定義關閉按鈕    this->setWindowFlags(Qt::FramelessWindowHint/*|Qt::WindowStaysOnTopHint*/);// [!]需要注釋qt的置頂屬性    this->setAutoFillBackground(true);    // 假設有其他資源需要初始化,如果構造時間較短,不容易看到效果。    QThread::sleep(1);    //[!]新增代碼    show();}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 羞羞视频一区 | 色淫影院| 成年免费视频黄网站在线观看 | 精品国产三级a | 色欲香天天天综合网站 | 国产91av视频 | 中文字幕综合在线观看 | 久久久入口 | 亚洲精品成人在线视频 | 欧美精品久久久久久久久老牛影院 | 亚洲网站免费观看 | 欧美aⅴ视频 | 国产1区2 | 欧美一级毛片特黄黄 | 免费看搡女人无遮挡的视频 | 亚洲天堂中文字幕在线观看 | 男人午夜小视频 | a集毛片| 国产成人av在线 | 国产亚洲精品久久久久久久久久 | 午夜丰满少妇高清毛片1000部 | 91丝袜| 色诱亚洲精品久久久久久 | 高清视频一区二区 | 国产午夜亚洲精品午夜鲁丝片 | 日本中文字幕电影在线观看 | 国产乱淫av | 亚洲第五色综合网 | 精品久久久久久国产三级 | 久久精品一区二区三区国产主播 | 国产精品一区二区x88av | 精品国产呦系列在线看 | asiass极品裸体女pics | 亚洲免费毛片基地 | 亚洲国产网址 | 精品国产乱码久久久久久丨区2区 | 成人免费网站在线观看视频 | 99精品在线免费 | 污在线观看网站 | 中文字幕精品在线播放 | lutube成人福利在线观看污 |