QT學習筆記(三)——QT中的座標系統及視窗位置,大小配置
一、QWidget類中的座標系統成員函式
Qt中的幾何座標以左上角為原點,其中的GUI元件以左上角進行定位
1.1 表示視窗左上角位置和客戶區的長寬
——x()//視窗左上角的橫座標
——y()//視窗左上角的縱座標
——width() //表示客戶區的寬度
——height()//表示客戶區的高度
1.2 表示客戶區左上角位置和客戶區長寬
——geometry()//客戶區的位置資訊:geometry().x(),geometry().y()客戶區左上角座標;width、height表示客戶區的寬度和高度
- x(),y(),width(),height()
1.3 表示視窗左上角位置和視窗的長寬
——frameGeometry()//成員函式,表示視窗的高度和寬度
- x(),y(),width(),height()
注1:除錯時需要先呼叫#include <QDebug>標頭檔案
注2:QWidget提供的x,y表示的座標與frameGeometry().x(),frameGeometry().y()的相同。
width(),height()表示的內容和geometry().width(),geometry().height()的相同。
提供三套座標函式的目的是為了方便跨平臺設計。
#include "show.h"
#include <QtWidgets/QApplication>
#include <qdebug.h>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;//生成QWidget物件,頂級元件
w.resize(400, 400);//設定視窗中客戶區的長寬
w.move(10, 10);//設定視窗的位置
w.show();//這個要放在配置視窗幾何資訊程式碼的上面
qDebug() << "QWidget:"; //輸出qdebug對應的字串
qDebug() << w.x();
qDebug() << w.y();
qDebug() << w.width();
qDebug() << w.height();
qDebug() << "QWidget::geometry()";
qDebug() << w.geometry().x();
qDebug() << w.geometry().y();
qDebug() << w.geometry().width();
qDebug() << w.geometry().height();
qDebug() << "QWidget::frameGeometry()";
qDebug() << w.frameGeometry().x();
qDebug() << w.frameGeometry().y();
qDebug() << w.frameGeometry().width();
qDebug() << w.frameGeometry().height();
return a.exec();
}
執行結果:
注:geometry()和frameGeometry()中的幾何資料必須在show()呼叫後才有效!!!
因為qt在不同的平臺下,都能生成圖形介面,但視窗外觀有差異。所以在視窗出現前,我們不知道這段程式碼是在什麼平臺下編譯的,所以只有在視窗出現在相應平臺下時,才能得到有效的幾何資料。
二、視窗部件的大小設定
2.1 QWidget類提供了成員函式:
——改變視窗部件的大小
void resize (int w, int h); //w,h表示視窗區的長寬,其取值是有限度的,window下,視窗的最小值是116*116.取小於這個值的,系統也會預設生成116*116的視窗。所以在建立專案時要考慮到不同系統的視窗部件長寬限制。
void resize(const QSize &);
——改變視窗部件的位置
void move (int x, int y); void move (const QPoint &); |
三、QPushButton元件
作用:
1. 用於接受使用者點選事件;2.能夠顯示提示性字串;3.是功能性元件,需要父元件作為容器; 4. 能夠在父元件中進行定位
QWidget w; //生成QWidget物件,頂級元件 QPushButton b(&w); //生成QPushButton物件,其父元件為QWidget
b.setText("Button"); //設定顯示的字串 b.move(10,10); //移動到座標(10,10) b.resize(10,25); //設定大小width = 10,height = 25 |
注:需要先在程式中新增#include <QPushButton>標頭檔案
#include "show.h"
#include <QtWidgets/QApplication>
#include <qdebug.h>
#include <qpushbutton.h>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w; //生成QWidget物件,頂級元件
QPushButton b(&w);//生成QPushButton物件,其父元件為QWidget
b.setText("Button");//設定按鍵顯示的字串
b.move(10, 10);//移動按鈕圖案到座標(10,10)位置
b.resize(100, 25);//設定按鈕大小width = 10,height = 25
QPushButton b1(&w);//生成QPushButton物件,其父元件為QWidget
b1.setText("Button1");//設定按鍵顯示的字串
b1.move(140, 10);//移動按鈕圖案到座標(10,10)位置
b1.resize(100, 25);//設定按鈕大小width = 10,height = 25
QPushButton b2(&w);//生成QPushButton物件,其父元件為QWidget
b2.setText("Button2");//設定按鍵顯示的字串
b2.move(10, 100);//移動按鈕圖案到座標(10,10)位置
b2.resize(100, 25);//設定按鈕大小width = 10,height = 25
w.show();//顯示視窗,要先配置視窗內容資訊,再顯示視窗
return a.exec();
}
注:要注意w.show();的位置,一般放在視窗內部配置的程式碼下面,即先配置視窗內部,再顯示。
四、QLabel元件
作用:
1. 能夠顯示提示性字串;2.是功能性元件,需要父元件作為容器;3. 能夠在父元件中進行定位
QWidget w; //生成QWidget物件,頂級元件 QLabel *lb = new QLabel(&w); //生成QPushButton物件,其父元件為QWidget
lb->setText("Button"); //設定顯示的字串 lb->setGeometry(QRect(10, 10, 150, 30)); //移動到座標(10,10),長為150,寬為30的矩形 lb->setFrameStyle(QFrame::Panel | QFrame::Sunken); //設定外觀 |
看不太懂的參考 https://blog.csdn.net/xgbing/article/details/7762331
相關文章
- Qt+ECharts開發筆記(二):Qt視窗動態調整大小,使ECharts跟隨Qt視窗大小變換QTEcharts筆記
- Qt - 座標系及轉換QT
- QT視窗類QT
- QT學習筆記4(動畫)QT筆記動畫
- Qt學習筆記(五)QString 字串QT筆記字串
- Go Qt5 建立空白視窗、視窗居中及關閉視窗事件GoQT事件
- Qt學習第四篇(主視窗和ui的使用)QTUI
- Qt TCP (小型聊天視窗)QTTCP
- Qt4.8.5 + VS2010 學習筆記QT筆記
- 【QT】QT如何讓視窗放置在螢幕正中間QT
- Qt三大視窗基類的差別QMainWindow QWidget QDialogQTAI
- Qt 視窗強制禁用系統陰影(自定義選單)QT
- 瀏覽器的視窗位置和大小瀏覽器
- 開源專案 Qt Esay Designer (Qt視窗設計器)QT
- Qt Creator 原始碼學習筆記01,初識QTCQT原始碼筆記
- Qt學習--Qt Plugin建立及呼叫2(外掛管理器)QTPlugin
- 麒麟系統開發筆記(三):從Qt原始碼編譯安裝之編譯安裝Qt5.12筆記QT原始碼編譯
- Qt 設定視窗居中顯示QT
- Qt 學習筆記 - 第三章 - Qt的三駕馬車之一 - 串列埠程式設計 + 程式打包成Windows軟體QT筆記串列埠程式設計Windows
- qt介面佈局之使視窗顯示出現在正中間位置QT
- QT分局管理:堆疊窗體(三)QT
- QT學習筆記(三)單行文字輸入框與自動補全QT筆記
- QT creator使用筆記QT筆記
- Qt 讓彈出的視窗居中顯示QT
- Qt開發Activex筆記(二):Qt呼叫Qt開發的Activex控制元件QT筆記控制元件
- 透過交換指標變數的值改變大小數字的位置-學習筆記指標變數筆記
- 麒麟系統開發筆記(二):國產麒麟系統搭建Qt開發環境安裝Qt5.12筆記QT開發環境
- Qt學習2QT
- Qt 求圓和橢圓上任意角度點的座標QT
- Qt Creator 原始碼學習筆記02,認識框架結構QT原始碼筆記框架
- QT學習筆記1(安裝、建立和訊號與槽)QT筆記
- Qt之彈出介面顯示在父視窗中間QT
- Qt學習之XMLQTXML
- qt的無邊框視窗支援拖拽、Aero Snap、視窗陰影等特性QT
- Qt5.12視窗螢幕居中顯示QT
- Qt 彈窗置頂國定尺寸大小等樣式設定QT
- Qt 子視窗 隱藏標題欄的圖示,隱藏在工作列上的圖示QT
- QT: 操作主從檢視及XMLQTXML