Qt中的坐标系统

坐标系统
GUI操作系统都有特定的坐标系统
图形界面程序在坐标系统中进行窗口和部件的定位
定位类型
——顶级窗口部件的定位
——窗口内部件的定位
——窗口部件的大小设置

Qt使用统一的坐标系统定位窗口部件的位置和大小
Qt部件类提供成员函数在坐标系统中进行定位
QWidget类提供了窗口部件所需的坐标系统成员函数

 

 为什么Qt提供三组不同的函数出来?

主要就是为了跨平台

#include "Widget.h"
#include <QApplication>
#include <QDebug>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;

    w.setWindowTitle("QingDao");
    w.show();

    qDebug()<< "QWidget::";
    qDebug()<< w.x();
    qDebug()<< w.y();
    qDebug()<< w.width();
    qDebug()<< w.height();

    qDebug()<< "QWidget::geometry";
    qDebug()<< w.geometry().x();
    qDebug()<< w.geometry().y();
    qDebug()<< w.geometry().width();
    qDebug()<< w.geometry().height();

    qDebug()<< "QWidget::frameGeometry";
    qDebug()<< w.frameGeometry().x();
    qDebug()<< w.frameGeometry().y();
    qDebug()<< w.frameGeometry().width();
    qDebug()<< w.frameGeometry().height();

    return a.exec();
}

 注意事项:

geometry()和frameGeometry中的几何数据必须在show()调用后才有效

窗口部件的大小设置
QWidget类提供了成员函数
——改变窗口部件的大小
  void resize(int w, int h)    //如果设置的宽度小于操作系统所需要满足的的最小宽度时,就取操作系统所规定的最小值。
  void resize(const QSize &)
——改变窗口部件的位置
  void move(int x, int y)
  void move(const QPoint &)

QPushButton组件
QPushButton用于接受用户点击事件
QPushButton能够显示提示性字符串
QPushButton是功能性组件,需要父组件作为容器
QPushButton能够在父组件中进行定位

QWidget w; //生成QWidget对象,顶级组件
QPushButton b(&w); //生成QPushButton对象,其父组件为QWidget

b.setText("Button"); //设置显示的字符串
b.move(10,10); //移动坐标(10,10)
b.resize(100,25); //设置大小width=100;height=15

小结:
Qt中的几何坐标以左上角为原点
——水平为x轴,从左向右为正向
——垂直为y轴,从上到下为正向
Qt中的GUI组件以左上角进行定位
Qt中的GUI组件可以在坐标系统中进行大小设置

原文地址:https://www.cnblogs.com/-glb/p/12080210.html