geometry,意思是“几何”。可以将geometry视为是四个属性的统称。
x:横坐标
y:纵坐标
width:宽度
height:高度
API | 说明 |
---|---|
geometry() |
获取到控件的位置和尺⼨. 返回结果是⼀个 QRect, 包含了 x, y, width, height. 其中 x, y 是左上⻆的坐标 |
setGeometry(QRect) setGeometry(int x, int y,int width, int height) |
设置控件的位置和尺⼨. 可以直接设置⼀个 QRect, 也可以分四个属性单独设置 |
Rect就是“矩形”。
在Qt中针对一些几何上的概念也进行了封装。例如QPoint表示一个点,QRect表示一个矩形,这些都是属于小对象,里面的属性非常少,占用空间也小。这种小对象在C++中进行使用的时候,通常会按照值的方式来传递参数。
move只是修改位置,二setGeometry既可以修改位置,又可以修改尺寸。
例子一:使用上下左右按钮移动位置
下面进行实际演示:
首先要注意的是,修改这些属性的时候,一定要先确认好你当前选中的是哪个控件。
设置四个按钮,分别更改名称up,left,right,down,并修改其objectName,期望通过点击这几个按钮,就能够修改target按钮的geometry。
#include "widget.h"
#include "ui_widget.h"
#include<QDebug>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_target_clicked()
{
QRect rect = ui->pushButton_target->geometry();
qDebug() << rect;
}
void Widget::on_pushButton_up_clicked()
{
//获取target自身的geometry
QRect rect = ui->pushButton_target->geometry();
rect.setY(rect.y() - 1);
ui->pushButton_target->setGeometry(rect);
}
void Widget::on_pushButton_down_clicked()
{
QRect rect = ui->pushButton_target->geometry();
rect.setY(rect.y() + 1);
ui->pushButton_target->setGeometry(