#include "win.h" #include <QPushButton> #include <QLabel> #include <QDebug> Win::Win(QWidget *parent) : QWidget(parent) { this->resize(500,400); QPushButton* btn=new QPushButton("按鈕",this); btn->move(15,10); i=btn->x(); //返回控件的x坐標 qDebug()<<i; i=btn->y(); //返回控件的y坐標 qDebug()<<i; }
相對於父控件的坐標(窗口框架左上角)
頂層控件(沒有父控件)則相對於桌面的坐標
QPoint point; point=btn->pos(); //返回控件的坐標--QPoint(15,10) i=point.x();//提取x坐標 i=point.y();//提取y坐標
i=btn->width(); //控件的寬度,不包含任何窗口框架 i=btn->height(); //控件的高度,不包含任何窗口框架 QSize size; size=btn->size(); //返回控件的寬和高;width和height的組合--QSize(100, 30) i=size.width(); //提取寬度 i=size.height();//提取高度
QSize size; QRect rect; rect=btn->geometry(); //相對於父控件的位置和尺寸的組合---QRect(15,10 100x30) i=rect.x(); //提取x坐標 i=rect.y(); //提取y坐標 size=rect.size();//提取大小--寬和高 i=rect.width(); //提取寬 i=rect.height(); //提取高
QSize s; s=w.frameSize(); //框架大小.一定要在show之后,否則數據錯誤--QSize(516, 439) QRect rect; rect=w.frameGeometry(); //框架位置和大小。一定要在show之后,否則數據錯誤--QRect(425,133 516x439)
設置位置和尺寸:
move(x, y) 操控的是x, y;也就是pos 包括窗口框架
resize(width, height) 操控的是寬高 不包括窗口框架
如果小於最小值,就無效
setGeometry(x_noFrame, y_noFrame, width, height) 注意,此處參照為用戶區域
#在show之后設置
adjustSize() 根據內容自適應大小
注意:單次有效,在設置內容后面使用
this->setFixedSize(500,400); // 設置固定尺寸
最大和最小尺寸:
minimumWidth() 返回最小尺寸的寬度
minimumHeight() 返回最小尺寸的高度
minimumSize() 返回最小尺寸 QtCore.QSize()
maximumWidth() 返回最大尺寸的寬度
maximumHeight() 返回最大尺寸的高度
maximumSize() 返回最大尺寸
setMaximumWidth() 返回設置最大寬度
setMaximumHeight() 返回設置最大高度
setMaximumSize() 返回設置最大尺寸
setMinimumWidth() 返回設置最小寬度
setMinimumHeight() 返回設置最小高度
setMinimumSize() 返回設置最小尺寸
注意 控件完全展示前后會有所差異
控件內容展示區域:
setContentsMargins(左, 上, 右, 下) 設置控件內容展示區域到邊框的距離
getContentsMargins() 獲取內容邊距 (左, 上, 右, 下) 元組
(50, 50, 0, 0) 就是展示區域到各邊框的距離
contentsRect() 獲取控件內容展示區域的位置和大小。
QRect(50, 50, 150, 50) 參數1參數2 :展示區域到控件左上角的坐標 參數3:展示區域的寬;參數4:展示區域的高
注意:必須是控件本身留夠對應的大小