窗口組件:
圖形用戶界面由不同的窗口和窗口組件構成;
Qt以組件對象的方式,構建圖形用戶界面。
組件的類型包括:
---容器類(父組件):用於包含其他的界面組件
---功能類(子組件):用於實現特定的交互功能
Qt中沒有用父組件的頂級組件叫做窗口。
Qwidget 繼承自QObject和QPaintDevice
-Qwidget 能夠繪制自己和處理用戶的輸入,也是Qt中所以窗口組件類的父類
-Qwidget類對象作為父組件或頂級組件使用
-Qt中的每一個窗口組件都是Qwidget
-Qwidget 是所有窗口組件的抽象
QLabel組件-QLabel 用於顯示提示性的字符串
-QLabel 是功能性組件,一般需要父組件作為容器
-QLabel 可以作為窗口存在,但沒有實際意義
Qt中可以根據需要定制窗口式樣
-窗口類型
.Qt::Dialog---對話框類型
.Qt::Window---主窗口類型
.Qt::SplashSctrrn---啟動畫面類型
。。。
-窗口標志
.Qt::WindowStaysOnTopHint
.Qt::WindowContexHelpButtonHint
。。。
編程實戰:
新建Qwidget工程如下圖:
參考代碼:
1 /*main.cpp*/ 2 3 #include "widget.h" 4 #include <QApplication> 5 6 int main(int argc, char *argv[]) 7 { 8 QApplication a(argc, argv); 9 Widget w; 10 w.setWindowTitle("我是繼承自Qwidget的Widget"); 11 w.show(); 12 13 return a.exec(); 14 }
1 /*widget.cpp*/ 2 3 #include<QLabel> 4 #include "widget.h" 5 6 Widget::Widget(QWidget *parent) 7 : QWidget(parent) 8 { 9 m_label =new QLabel(this); 10 m_label->setText("我是一個標簽"); 11 } 12 13 Widget::~Widget() 14 { 15 16 }
1 /*widget.h*/ 2 3 #ifndef WIDGET_H 4 #define WIDGET_H 5 6 #include <QWidget> 7 class QLabel; 8 class Widget : public QWidget 9 { 10 Q_OBJECT 11 private: 12 QLabel *m_label; 13 public: 14 Widget(QWidget *parent = 0); 15 ~Widget(); 16 }; 17 18 #endif // WIDGET_H
效果圖:
NOTE:
你可能現在會有很多疑問,但慢慢看下去,你的疑問就會慢慢被解決。O(∩_∩)O
Best Practices:
Qt中的幫助文檔是你的第一手資料,它也是你遇到問題首先應該去查詢的。但這也要求我們需要具備一定的英語閱讀能力,剛開始吃力,堅持幾個月就好,至少我是這樣過來的,遇到不會的單詞,只查詞比你整句copy到翻譯軟件更能提高你的英語閱讀水平。