第七课、Qt中的坐标系统------------------狄泰软件学院

一、坐标系统

1、GUI操作系统都有特定的坐标系统

2、图形界面程序在坐标系统中进行窗口和部件的定位

3、定位类型

(1)、顶级窗口部件的定位

(2)、窗口内部件的定位

(3)、窗口部件大小的设置

4、Qt的坐标系统

(1)、Qt使用统一的坐标系统定位窗口部件的位置和大小

(2)、Qt部件类提供成员函数在坐标系统中进行定位

(3)、QWidget类提供了窗口部件所需的坐标系统成员函数

二、坐标系统中的成员函数(查看帮助文档看描述)

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

 

三、窗口部件的大小设置

1、改变窗口部件的大小(设置的大小不在操作系统规定的范围时会自动调整

(1)、void resize(int w, int h)

(2)、void resize(const Qsize&)

2、改变窗口部件的位置

(1)、void move(int x, int y)

(2)、void move(const QPoit&)

 四、QPushButon组件

1、QPushButon用于接收用户点击事件

2、QPushButon能够显示提示性字符

3、QPushButon是功能性组件需要父组件作为容器

4、QPushButon能够在父组件中进行定位

#include <QtGui/QApplication>
#include <QPushButton>
#include <QDebug>

#include "Widget.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    QPushButton b(&w);   // 生成 QPushButton对象, 其父组件为 QWidget
    QPushButton b1(&w);


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

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


    w.resize(100, 100);
    w.move(120, 120);
    w.show();//获取坐标要在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();
}

五、小结

(1)、Qt中的几何坐标以左上角为原点

      A、水平为x轴,从左向右为正

      B、垂直为y轴,从上向下为正

(2)、Qt中的GUI组件以左上角进行定位

(3)、Qt中的组件可以在坐标系统中进行大小设置

 

原文地址:https://www.cnblogs.com/gui-lin/p/6387537.html