1. 坐标系统
(1)GUI操作系统都有特定的坐标系统
(2)图形界面程序在坐标系统中进行窗口和部件的定位
(3)定位类型
①顶级窗口部件的定位
②窗口内部件的定位
③窗口部件的大小设置
(4)QWidget类提供的定位函数
①Qt使用统一的坐标系统定位窗口部件的位置和大小
②Qt部件类提供成员函数在坐标系统中进行定位
2. QWidget类提供了窗口部件所需的坐标系统成员函数
(1):x()、y();在父窗口中的起始坐标
(2):width()、height();客户区的宽度和高度
(3)geometer():客户区的几何尺寸
①x()、y():客户区在父窗口中的起始坐标
②width()、height():客户区的大小
(4)frameGeometry():框架几何尺寸
①x()、y():整个窗口在父窗口中的起始坐标
②width()、height():整个窗口的大小(含非客户区)
▲注意:geometry()和frameGeometry()中的几何数据必须在show()调用后才有效
3. 窗口部件的大小设置——利用QWidget类提供的成员函数
(1)改变窗口部件的大小
①void resize(int w, int h);
②void resize(const QSize&);
(2)改变窗口部件的位置
①void move(int x, int y)
②void move(const QPoint&)
4. QPushButton组件
(1)用于接受用户点击事件
(2)能够显示提示性字符串
(3)是功能性组件,需要父组件作为容器
(4)能够在父组件中进行定位
【编程实验】Qt坐标系统及窗口子组件大小和位置设置
#include <QApplication> #include <QPushbutton> #include <QDebug> int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget w; //顶级窗口 QPushButton b(&w); //生成QPushButton对象 QPushButton b1(&w); b.setText("Button"); //设置显示的字符串 b.move(10, 10); //移动到坐标(10, 10) b.resize(100, 50); //设置大小 width =100,heigth = 50 b1.setText("Button"); //设置显示的字符串 b1.move(120, 10); //移动到坐标(120, 10) b1.resize(100, 50); //设置大小 width =100,heigth = 50 w.resize(240, 100); w.move(120, 120); //相对于桌面坐标系统 w.show(); qDebug()<<"QWidget:"; qDebug()<<w.x(); //120 qDebug()<<w.y(); //120 qDebug()<<w.width(); //240 qDebug()<<w.height(); //100 qDebug()<<"QWidget::geometry()"; qDebug()<<w.geometry().x(); //128 qDebug()<<w.geometry().y(); //151 qDebug()<<w.geometry().width(); //240 qDebug()<<w.geometry().height(); //100 qDebug()<<"QWidget::frameGeometry"; qDebug()<<w.frameGeometry().x(); //120 qDebug()<<w.frameGeometry().y(); //120 qDebug()<<w.frameGeometry().width();//256 qDebug()<<w.frameGeometry().height();//139 return a.exec(); }
5. 小结
(1)Qt中的几何坐标以左上角为原点
水平为x轴,从左向右为正向
垂直为y轴,从上到下为正向
(2)Qt中的GUI组件以左上角进行定位
(3)Qt中的GUI组件可以在坐标系统中进行大小设置