QT開發(五)——視窗組件和視窗類別型

來源:互聯網
上載者:User

標籤: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開發(五)——視窗組件和視窗類別型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.