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

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

Qt中的置頂窗口

2019-11-09 17:24:09
字體:
來源:轉載
供稿:網友

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();}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产激情精品一区二区三区 | 麻豆视频在线免费观看 | 日韩精品中文字幕在线播放 | av电影网站在线 | 圆产精品久久久久久久久久久 | 亚洲国产精久久久久久久 | 亚洲精品成人久久 | 一级黄色毛片播放 | asian gaysex| 国产资源在线免费观看 | 国产视频在线观看免费 | 成年人免费视频播放 | 午夜小电影 | 欧美成人精品欧美一级 | 中国免费一级毛片 | 在线成人免费视频 | 久久久久久久一区二区三区 | 免费黄色入口 | av电影免费播放 | 国产精品久久二区 | 成人午夜精品久久久久久久蜜臀 | 欧美久久久一区二区三区 | 免费黄色一级网站 | 免费黄色在线观看网站 | 涩涩伊人 | 国产91精品一区二区麻豆亚洲 | 91精品国产777在线观看 | 中文字幕精品久久 | 91麻豆蜜桃一区二区三区 | 欧美成人免费在线视频 | 国产精品一区二区三区99 | 国产精品久久久久久久久久久天堂 | 麻豆蜜桃在线观看 | 免费淫视频 | 9191色| 日本不卡中文字幕 | 综合网日日天干夜夜久久 | 日本aaaa片毛片免费观看视频 | 人成免费网站 | 成人免费激情视频 | 草久免费|