標籤:qt開發 視窗組件
QT開發(五)——視窗組件和視窗類別型一、視窗組件
圖形化使用者介面由不同的視窗和視窗組件構成,<QtGui>標頭檔包含視窗組件,對應QT中的GUI模組,QT以組件對象的方式構建GUI。
組件的類型:
A、容器類(父組件)用來包含其他的介面組件
B、功能類(子組件)用於實現特定的互動功能
QT中沒有父組件的頂級組件叫視窗。
QWidget是容器組件,繼承自QObject類和QPaintDevice類,QObject類是所有支援QT物件模型的基類,QPaintDevice類是QT中所有可繪製組件的基類。
QWidget組件
QWidget能夠繪製自己和處理使用者輸入,是QT中所有視窗組件類的父類,是所有視窗組件的抽象,每個視窗組件都是一個QWidget,QWidget類對象常用作父組件或頂級組件使用。
QLabel組件
QLabel組件用於顯示一個提示性字串,是功能性組件,一般需要父組件作為容器,QLabel作為視窗存在沒有實際意義。
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/89/89/wKioL1gXGxLxPPKZAAUYxm8wyi0447.png" title="圖片1.png" alt="wKioL1gXGxLxPPKZAAUYxm8wyi0447.png" />
二、視窗類別型
QT中可以根據需要定製視窗樣式,不同的視窗類別型可以使視窗具有不同的樣式特性。
視窗類別型:
Qt::Widget
Qt::Window
Qt::Dialog
Qt::Sheet
Qt::Drawer
Qt::Popup
Qt::Tool
Qt::ToolTip
Qt::SplashScreen
Qt::Desktop
Qt::SubWindow
視窗標識:
Qt::WindowStaysOnTopHint
三、座標系統
QT中的座標系統以左上方為原點,水平為x軸,從左向右為正向,垂直為y軸,從上到下為正向。
1、視窗組件的定位
GUI程式在座標系統中進行視窗和組件的定位
定位類型分為:
A、最上層視窗組件的定位
B、視窗內組件的定位
C、視窗組件的大小設定
QT使用統一的座標系統錨定視窗組件的位置和大小
QT組件類提供成員函數在座標系統中進行定位
QWidget類提供了視窗組件所需的座標系統成員函數
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/89/89/wKioL1gXGzXQIcXbAACzkNxngEA159.png" title="圖片2.png" alt="wKioL1gXGzXQIcXbAACzkNxngEA159.png" />
intx() const;
inty() const;
int width() const;
int height() const;
以視窗左上方為座標系原點,但width()和height()分別為客戶區的寬和高
const QRect &geometry() const;
intx() const;
inty() const;
int width() const;
int height() const;
以客戶區左上方為座標系原點,width()和height()分別為客戶區的寬和高
QRectframeGeometry() const;
intx() const;
inty() const;
int width() const;
int height() const;
以視窗左上方為座標系原點,width()和height()分別為視窗的寬和高
使用執行個體:
#include <QtGui/QApplication>#include "Widget.h"#include <QDebug>int main(int argc, char *argv[]){ QApplication a(argc, argv); QWidget w(NULL,Qt::Window|Qt::WindowSystemMenuHint); w.setWindowTitle("HelloWorld"); w.show(); qDebug() << w.x(); qDebug() << w.y(); qDebug() << w.width(); qDebug() << w.height(); qDebug() << w.geometry().x(); qDebug() << w.geometry().y(); qDebug() << w.geometry().width(); qDebug() << w.geometry().height(); qDebug() << w.frameGeometry().x(); qDebug() << w.frameGeometry().y(); qDebug() << w.frameGeometry().width(); qDebug() << w.frameGeometry().height(); return a.exec();}
geometry()、frameGeometry()函數需要在show()函數後調用。QT平台在視窗顯示出來之前無法確定視窗的大小。
2、視窗組件的設定
QWidget類提供了設定視窗組件大小的成員函數
A、改變視窗組件的大小
void resize(const QSize &);
void resize(int w, int h);
B、改變視窗組件的位置
void move(int x, int y);
void move(const QPoint &);
本文出自 “生命不息,奮鬥不止” 部落格,謝絕轉載!
QT開發(五)——視窗組件和視窗類別型