1.坐标系统
GUI操作系统都有特定的坐标系统
图形界面程序在坐标系统中进行窗口和部件的定位
定位类型:
顶级窗口部件的定位
窗口内部件的定位
窗口部件的大小设置
Qt使用统一的坐标系统定位窗口部件的位置和大小
Qt部件提供成员函数在坐标系统中进行定位
QWidget类提供了窗口部件所需要的坐标系统成员函数
2.坐标系统相关的成员函数
QWidget类中的坐标系统成员函数:
x()
y()
width()
height()
geometry():
x(),y(),width(),height()
frameGeometry():
x(),y(),width(),height()
**注意:****geometry()和frameGeometry()中的几何数据必须在show()**调用后才有效
3.窗口部件的大小设置
QWidget类提供了成员函数:
改变窗口部件的大小:
void resize(int w, int h)
void resize(const QSize &)
改变窗口部件的位置:
void move(int x, int y)
void move(const QPoint &)
4.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 = 25
编程实验:窗口子组件的大小和位置
#include "widget.h"
#include <QApplication>
#include <QDebug>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
QPushButton b(&w); //生成QPushButton对象,其父组件为QWidget
QPushButton b1(&w); //生成QPushButton对象,其父组件为QWidget
b.setText("Button"); //设置显示的字符串
b.move(10, 10); //移动到坐标(10, 10)
b.resize(100, 25); //设置大小width = 100, height = 25
b1.setText("Button1"); //设置显示的字符串
b1.move(120, 10); //移动到坐标(120, 10)
b1.resize(100, 25); //设置大小width = 100, height = 25
w.resize(300, 200);
w.move(120, 120);
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();
}