一.Qt中的坐标系统
实验1:窗口坐标大小
#include <QtGui/QApplication>
#include <QPushButton>
#include <QDebug>
#include "widget.h"
int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;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();
}QWidget:
192
192
400
300
QWidget::geometry()
201
230
400
300
QWidget::frameGeometry()
192
192
418
347
实验2: 每个平台有自己的最小窗口设定,如果代码中设置的窗口大小 小于平台规定大小,那么会默认调整为平台规定的最小大小。
#include <QtGui/QApplication>
#include <QPushButton>
#include <QDebug>
#include "widget.h"
int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.resize(100, 100);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();
}QWidget:
120
120
152
100
QWidget::geometry()
129
158
152
100
QWidget::frameGeometry()
120
120
170
147
二.QPushButton 组件
实验3:QPushButton 使用
#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对象, 其父组件为 QWidgetQPushButton b1(&w);b.setText("Button");// 设置显示的字符串b.move(10, 10); // 移动到坐标 (10, 10)b.resize(100, 50); // 设置大小 width = 100, height = 25b1.setText("Button"); // 设置显示的字符串b1.move(120, 10); // 移动到坐标 (120, 10)b1.resize(100, 50); // 设置大小 width = 100, height = 25w.resize(100, 100);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();
}
小结:
Qt中的几何坐标以左上角为原定。
- 水平为X轴,从左向右为正向。
- 垂直为Y轴,从上到下为正向。
Qt 中的GUI组件以左上角进行定位。
Qt 中的GUI组件可以在坐标系统中进行大小设置。