qt5-QWidget坐標系統和大小和展示區域


#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:展示區域的高    

注意:必須是控件本身留夠對應的大小

  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM