座标系统
每个GUI操作系统都有特定的座标系统,座标系统用于在图形界面程序中进行窗口、组件的定位(定位的前提就是要有座标系统)及窗口部件的大小设置。
其中定位类型有顶级窗口组件的定位、窗口内部的组件定位和窗口部件的大小设置。
Qt中使用统一的座标系统定位窗口部件的位置和大小。
Qt的组件类提供成员函数在座标系统中进行定位,如函数x()、y()。
QWidget类提供了窗口部件所需的座标系统成员函数。
其中上图外层座标表示窗口在屏幕中的座标,内层表示用户区,除去标题栏和最小化、最大化、关闭按钮的座标,在座标系中横为x(向右为增),竖为y(向下为增)。
座标系统相关成员函数
QWidget直接提供的x()、y() 、width()、 height()函数表示窗口左上角开始计算的座标(相对于电脑界面左上角而言)和客户区的宽度和高度。
geometry()提供的x()、y() 、width()、 height()函数表示客户区左上角开始计算的座标和客户区的宽度和高度
frameGeometry()提供的x()、y() 、width()、 height()函数表示窗口左上角开始计算的座标和窗口的宽度和高度
注意:提供三组座标就是为了跨平台使用,由于不同平台的标题栏大小不同,以及注意每组座标系统中的适用区域。
在编程中:
亲测,如果在show()调用之前调用的话数据是无效的。
因为在不同的平台中如果窗口还未显示出来我们则无法知道边框大小,只有将窗口显示出来后才能获取有效的座标系统数据.
窗口部件大小、位置设置
QWidget提供了成员函数用来设置窗口组件的位置大小信息。
使用void resize(int w, int h)和void resize(const QSize&)来设置窗口宽度、高度(用户区的宽度和高度)。
使用void move(int w, int h)和void move(const QPoint&)函数和座标位置(窗口左上角的座标),当设置的宽度小于了操作系统最小宽度值时系统默认设为系统的最小值,不同的操作系统所规定的最小值不同。
QPushButton组件
QPushButton生成的对象在界面上呈现就是一个按钮。
QPushButton用于接受用户点击事件。
QPushButton能够显示提示性字符串,QLabel也有相同作用哦。
QPushButton是功能性组件,需要父组件作为容器。
QPushButton能够在父组件中定位。
综合代码片段:
QWidget w;//生成QWidget对象,作为顶级组件
QPushButton btn(&w);//将按钮对象放到容器里
btn.setText("Button");//给按钮设置显示的字符串
btn.move(10, 10);//移动按钮位置
btn.resize(100, 25);//设置按钮的宽度和高度
设置座标为用户区左上角为起始位置的座标。
可以生成多个QPushButton对象来创建多个按钮。
主窗口和用户区都是以相同的方向创建座标。