#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:展示区域的高
注意:必须是控件本身留够对应的大小