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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Qt / QMainWindow、QDialog、QWidget

發布時間:2024/10/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt / QMainWindow、QDialog、QWidget 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在 Qt 中,我們將窗口和控件統稱為部件(Widget)。

窗口是指程序的整體界面,可以包含標題欄、菜單欄、工具欄、關閉按鈕、最小化按鈕、最大化按鈕等。

控件是指按鈕、復選框、文本框、表格、進度條等這些組成程序的基本元素。一個程序可以有多個窗口,一個窗口也可以有多個控件。

QWidget 是所有用戶界面元素的基類,窗口和控件都是直接或間接繼承自 QWidget,QMainWindow、QWidget、QDialog 三個類就是用來創建窗口的,可以直接使用也可以繼承后再使用。

QMainWindow 窗口可以包含菜單欄、工具欄、狀態欄、標題欄等,是最常見的窗口形式,可以作為 GUI 程序的主窗口。

如下圖所示:

QDialog 是對話框窗口的基類。對話框主要用來執行短期任務,或與用戶進行互動,它可以是模態的也可以是非模態的。QDialog 沒有菜單欄、工具欄、狀態欄等。

如下圖所示:

如果是主窗口,就使用 QMainWindow;如果是對話框,就是用 QDialog;如果不確定,或有可能作為頂級窗口,也有可能嵌入到其他窗口中,那么使用 QWidget

需要注意的是,窗口和控件都繼承自 QWidget,如果不為控件指定父對象,它就會被作為窗口處理,這時 setWindowTitle() 和 setWindowIcon() 函數就會生效。

請看下面的代碼:

#include <QApplication> #include <QLabel> #include <QPushButton>int main(int argc, char *argv[]) {QApplication app(argc, argv);QLabel label("這是Label控件"); //沒有父對象label.setWindowTitle("Label控件作為頂級窗口");label.setGeometry(100, 50, 360, 160);label.setAlignment(Qt::AlignCenter);label.show();QPushButton btn; //沒有父對象btn.setWindowTitle("PushButton控件作為頂級窗口");btn.setText("這是個大大的按鈕");btn.setGeometry(480, 50, 360, 160);btn.show();return app.exec(); }

運行代碼,會在距離顯示器 x=100,y=50 的位置彈出兩個窗口,

如下圖所示:

可以發現,窗口和控件沒有絕對的區別,控件也可以成為窗口,這取決于它有沒有父對象。

?

轉載于:https://blog.csdn.net/rl529014/article/details/51419126

?

(SAW:Game Over!)

總結

以上是生活随笔為你收集整理的Qt / QMainWindow、QDialog、QWidget的全部內容,希望文章能夠幫你解決所遇到的問題。

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