测试一下QT的子窗口按钮坐标基准问题
第一个button的设置代码
ui->setupUi(this);
//创建一个按钮,作为当前窗口的子控件
QPushButton* btnA = new QPushButton(this);
btnA-> move(10,12);
btnA->setFixedSize(200,200);
第二个button的设置代码
//创建第2个按钮
QPushButton* btnB = new QPushButton(this);
btnB-> move(10,12);
btnB->setFixedSize(150,150);
第三个button的设置
//创建第3个按钮
QPushButton* btnC = new QPushButton(this);
btnC-> move(10,12);
btnC->setFixedSize(70,80);
结果
因为指针都指向this
= new QPushButton(this);
所以都以mainwindow的左上角为原点,停在(10,12)坐标位置处
改变第三个button坐标为:
btnC-> move(20,12);
结果
同样是基于mainwindow原点的坐标定位
改变buttonC的指针为(指向B):
QPushButton* btnC = new QPushButton(btnB);
结果为
此时C以B的左上角为坐标原点。
完整代码
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>//qt中按钮类的名字
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//创建一个按钮,作为当前窗口的子控件
QPushButton* btnA = new QPushButton(this);
//移动按钮位置
btnA-> move(10,12);
//给按钮设置固定大小
btnA->setFixedSize(200,200);
//创建第2个按钮
QPushButton* btnB = new QPushButton(this);
btnB-> move(10,12);
btnB->setFixedSize(150,150);
//创建第3个按钮
QPushButton* btnC = new QPushButton(btnB);
btnC-> move(20,12);
btnC->setFixedSize(70,80);
}
MainWindow::~MainWindow()
{
delete ui;
}