1. 程式人生 > 實用技巧 >Qt 座標系統、視窗部件位置大小設定及簡單的QPushButton使用

Qt 座標系統、視窗部件位置大小設定及簡單的QPushButton使用

座標系統

每個GUI作業系統都有特定的座標系統,座標系統用於在圖形介面程式中進行視窗、元件的定位(定位的前提就是要有座標系統)及視窗部件的大小設定。
其中定位型別有頂級視窗元件的定位、視窗內部的元件定位和視窗部件的大小設定。

Qt中使用統一的座標系統定位視窗部件的位置和大小。
Qt的元件類提供成員函式在座標系統中進行定位,如函式x()、y()。
QWidget類提供了視窗部件所需的座標系統成員函式。

其中上圖外層座標表示視窗在螢幕中的座標,內層表示使用者區,除去標題欄和最小化、最大化、關閉按鈕的座標,在座標系中橫為x(向右為增),豎為y(向下為增)。

座標系統相關成員函式


QWidget直接提供的x()、y() 、width()、 height()函式表示視窗左上角

開始計算的座標(相對於電腦介面左上角而言)和客戶區的寬度和高度。
geometry()提供的x()、y() 、width()、 height()函式表示客戶區左上角開始計算的座標和客戶區的寬度和高度
frameGeometry()提供的x()、y() 、width()、 height()函式表示視窗左上角開始計算的座標和視窗的寬度和高度
注意:提供三組座標就是為了跨平臺使用,由於不同平臺的標題欄大小不同,以及注意每組座標系統中的適用區域。

在程式設計中:

親測,如果在show()呼叫之前呼叫的話資料是無效的。
因為在不同的平臺中如果視窗還未顯示出來我們則無法知道邊框大小,只有將視窗顯示出來後才能獲取有效的座標系統資料.

視窗部件大小、位置設定

QWidget提供了成員函式用來設定視窗元件的位置大小資訊。
使用void resize(int w, int h)和void resize(const QSize&)來設定視窗寬度、高度(使用者區的寬度和高度)。
使用void move(int w, int h)和void move(const QPoint&)函式和座標位置(視窗左上角的座標),當設定的寬度小於了作業系統最小寬度值時系統預設設為系統的最小值,不同的作業系統所規定的最小值不同。

QPushButton元件

QPushButton生成的物件在介面上呈現就是一個按鈕。
QPushButton用於接受使用者點選事件。


QPushButton能夠顯示提示性字串,QLabel也有相同作用哦。
QPushButton是功能性元件,需要父元件作為容器。
QPushButton能夠在父元件中定位。

綜合程式碼片段:

1 QWidget w;//生成QWidget物件,作為頂級元件
2 QPushButton btn(&w);//將按鈕物件放到容器裡
3 btn.setText("Button");//給按鈕設定顯示的字串
4 btn.move(10, 10);//移動按鈕位置
5 btn.resize(100, 25);//設定按鈕的寬度和高度

設定座標為使用者區左上角為起始位置的座標。
可以生成多個QPushButton物件來建立多個按鈕。
主視窗和使用者區都是以相同的方向建立座標。