Qt5位置相关函数
2016-09-01 23:55
225 查看
项目名称:Geometry
基类:QDialog
类名:Geometry
取消“创建界面”
在头文件中声明所需的控件(主要为QLabel类)及所需要的函数。
#ifndef GEOMETRY_H #define GEOMETRY_H #include <QDialog> //以下是添加的代码 #include <QLabel> #include <QGridLayout> class Geometry : public QDialog { Q_OBJECT public: Geometry(QWidget *parent = 0); ~Geometry(); void updateLabel(); private: QLabel *xLabel; QLabel *xValueLabel; QLabel *yLabel; QLabel *yValueLabel; QLabel *FrmLabel; QLabel *FrmValueLabel; QLabel *posLabel; QLabel *posValueLabel; QLabel *geoLabel; QLabel *geoValueLabel; QLabel *widthLable; QLabel *widthValueLabel; QLabel *heightLabel; QLabel *heightValueLabel; QLabel *rectLabel; QLabel *rectValueLabel; QLabel *sizeLabel; QLabel *sizeValueLabel; QGridLayout *mainLayout; protected: void moveEvent(QMoveEvent *); void resizeEvent(QResizeEvent *); }; #endif // GEOMETRY_H
在cpp文件中的构造函数中完成控件的创建以及初始化工作
#include "geometry.h" Geometry::Geometry(QWidget *parent) : QDialog(parent) { setWindowTitle(tr("Geometry")); xLabel=new QLabel(tr("x():")); xValueLabel=new QLabel; yLabel=new QLabel(tr("y():")); yValueLabel=new QLabel; FrmLabel = new QLabel(tr("Frame:")); FrmValueLabel =new QLabel; posLabel =new QLabel(tr("pos():")); posValueLabel =new QLabel; geoLabel =new QLabel(tr("geometry():")); geoValueLabel =new QLabel; widthLable =new QLabel(tr("width():")); widthValueLabel =new QLabel; heightLabel =new QLabel(tr("height():")); heightValueLabel =new QLabel; rectLabel =new QLabel(tr("rect():")); rectValueLabel =new QLabel; sizeLabel =new QLabel(tr("size():")); sizeValueLabel =new QLabel; mainLayout =new QGridLayout(this); mainLayout ->addWidget(xLabel,0,0); mainLayout ->addWidget(xValueLabel,0,1); mainLayout ->addWidget(yLabel,1,0); mainLayout ->addWidget(yValueLabel,1,1); mainLayout ->addWidget(posLabel,2,0); mainLayout ->addWidget(posValueLabel,2,1); mainLayout ->addWidget(FrmLabel,3,0); mainLayout ->addWidget(FrmValueLabel,3,1); mainLayout ->addWidget(geoLabel,4,0); mainLayout ->addWidget(geoValueLabel,4,1); mainLayout ->addWidget(widthLable,5,0); mainLayout ->addWidget(widthValueLabel,5,1); mainLayout ->addWidget(heightLabel,6,0); mainLayout ->addWidget(heightValueLabel,6,1); mainLayout ->addWidget(rectLabel,7,0); mainLayout ->addWidget(rectValueLabel,7,1); mainLayout->addWidget(sizeLabel,8,0); mainLayout ->addWidget(sizeValueLabel,8,1); updateLabel(); } Geometry::~Geometry() { }
updateLabel()函数完成获得各位置函数的信息并显示功能
void Geometry::updateLabel() { QString xStr; //获得x()函数的结果并显示 xValueLabel->setText(xStr.setNum(x())); QString yStr; //获得y()函数的结果并显示 yValueLabel->setText(yStr.setNum(y())); QString frameStr; //获得frameGeometry()函数的结果并显示 QString tempStr1,tempStr2,tempStr3,tempStr4; frameStr=tempStr1.setNum(frameGeometry().x())+","+ tempStr2.setNum(frameGeometry().y())+","+ tempStr3.setNum(frameGeometry().width())+","+ tempStr4.setNum(frameGeometry().height()); FrmValueLabel->setText(frameStr); QString positionStr; //获得pos()函数的结果并显示 QString tempStr11,tempStr12; positionStr =tempStr11.setNum(pos().x())+","+tempStr12.setNum(pos().y()); posValueLabel->setText(positionStr); QString geoStr; //获得geometry()函数的结果并显示 QString tempStr21,tempStr22,tempStr23,tempStr24; geoStr =tempStr21.setNum(geometry().x())+","+ tempStr22.setNum(geometry().y())+","+ tempStr23.setNum(geometry().width())+","+ tempStr24.setNum(geometry().height()); geoValueLabel->setText(geoStr); QString wStr,hStr; //获得width()、height()函数的结果并显示 widthValueLabel->setText(wStr.setNum(width())); heightValueLabel->setText(hStr.setNum(height())); QString rectStr; //获得rect()函数的结果并显示 QString tempStr31,tempStr32,tempStr33,tempStr34; rectStr =tempStr31.setNum(rect().x())+","+ tempStr32.setNum(rect().y())+","+ tempStr33.setNum(/*rect().width()*/width())+","+ tempStr34.setNum(height()/*rect().height()*/); rectValueLabel->setText(rectStr); QString sizeStr; QString tempStr41,tempStr42; sizeStr=tempStr41.setNum(size().width())+","+ tempStr42.setNum(size().height()); sizeValueLabel->setText(sizeStr); }
重定义QWidget的moveEvent()和resizeEvent()函数,响应对话框的移动事件,使得窗体在移动/大小调整时能够同步更新各函数的显示效果
void Geometry::moveEvent(QMoveEvent *) { updateLabel(); } void Geometry::resizeEvent(QResizeEvent *) { updateLabel(); }
相关文章推荐
- Qt5位置相关函数
- Qt5.8 位置相关函数
- QT位置相关函数
- Qt5位置相关函数
- Qt5位置相关函数异同详解(附源码)
- Qt获取系统相关位置
- Qt中窗体最大最小化以及窗口大小修改的相关函数使用(2)
- Qt常用的部件及相关函数
- QT中鼠标位置获取问题之event->globalPos()与pos()函数
- MFC调整窗口尺寸位置的相关函数
- 彻底弄懂Qt的编码(汉字乱码问题及相关函数作用)
- 彻底弄懂Qt的编码(汉字乱码问题及相关函数作用)
- Qt获取系统相关位置路径
- 窗口位置相关的函数和概念
- 彻底弄懂Qt的编码(汉字乱码问题及相关函数作用)
- 从Qt5开始只剩下setCodecForLocale这一个了,只是影响Qt对toLocal8Bit相关函数的编码方式(在源码里写非英文,官方推荐“\xE4\xBD...”这种)good
- Qt获取系统相关位置
- Qt获取系统相关位置
- QT中鼠标位置获取问题之event->globalPos()与pos()函数
- Qt5位置相关函数异同详解(附源码)