您的位置:首页 > 编程语言 > Qt开发

Qt实例 1_3 各类位置信息

2014-02-22 16:32 260 查看
QT源代码(在qt5.10版本上测试通过)

geometry.h

#ifndef GEOMETRY_H

#define GEOMETRY_H

#include <QDialog>

#include <QLabel>


class Geometry : public QDialog

{

Q_OBJECT

public:

Geometry();

QLabel *label1;

QLabel *label2;

QLabel *label3;

QLabel *label4;

QLabel *label5;

QLabel *label6;

QLabel *label7;

QLabel *label8;

QLabel *label9;

QLabel *xLabel;

QLabel *yLabel;

QLabel *frameGeoLabel;

QLabel *posLabel;

QLabel *geoLabel;

QLabel *widthLabel;

QLabel *heightLabel;

QLabel *rectLabel;

QLabel *sizeLabel;

void updateLabel();

protected:

void moveEvent(QMoveEvent *);

void resizeEvent(QResizeEvent *);

};


#endif // GEOMETRY_H



geometry.cpp

#include "geometry.h"
#include <QGridLayout>
Geometry::Geometry()
{
setWindowTitle("Geometry");
label1 = new QLabel;
label1->setText("x():");
label2 = new QLabel;
label2->setText("y():");
label3 = new QLabel;
label3->setText("frameGeometry():");
label4 = new QLabel;
label4->setText("pos():");
label5 = new QLabel;
label5->setText("geometry():");
label6 = new QLabel;
label6->setText("width():");
label7 = new QLabel;
label7->setText("height():");
label8 = new QLabel;
label8->setText("rect():");
label9 = new QLabel;
label9->setText("size():");
xLabel = new QLabel;
yLabel = new QLabel;
frameGeoLabel = new QLabel;
posLabel = new QLabel;
geoLabel = new QLabel;
widthLabel = new QLabel;
heightLabel = new QLabel;
rectLabel = new QLabel;
sizeLabel = new QLabel;
QGridLayout *layout = new QGridLayout(this);
layout->setMargin(20);
layout->setSpacing(10);
int l = 0;
int c = 1;
layout->addWidget(label1,0,l);
layout->addWidget(xLabel,0,c);
layout->addWidget(label2,1,l);
layout->addWidget(yLabel,1,c);
layout->addWidget(label3,2,l);
layout->addWidget(frameGeoLabel,2,c);
layout->addWidget(label4,3,l);
layout->addWidget(posLabel,3,c);
layout->addWidget(label5,4,l);
layout->addWidget(geoLabel,4,c);
layout->addWidget(label6,5,l);
layout->addWidget(widthLabel,5,c);
layout->addWidget(label7,6,l);
layout->addWidget(heightLabel,6,c);
layout->addWidget(label8,7,l);
layout->addWidget(rectLabel,7,c);
layout->addWidget(label9,8,l);
layout->addWidget(sizeLabel,8,c);
updateLabel();
}
void Geometry::updateLabel()
{
QString temp1,temp2, temp3, temp4;
QString str_x;
xLabel->setText(str_x.setNum(x()));
QString str_y;
yLabel->setText(str_y.setNum(y()));
QString frameGeo;
frameGeo = temp1.setNum(frameGeometry().x())+","+
temp2.setNum(frameGeometry().y())+","+
temp3.setNum(frameGeometry().width())+","+
temp4.setNum(frameGeometry().height());
frameGeoLabel->setText(frameGeo);
QString position;
position = temp1.setNum(pos().x())+","+temp2.setNum(pos().y());
posLabel->setText(position);
QString geo;
geo = temp1.setNum(geometry().x())+","+
temp2.setNum(geometry().y())+","+
temp3.setNum(geometry().width())+","+
temp4.setNum(geometry().height());
geoLabel->setText(geo);
QString w;
widthLabel->setText(w.setNum(width()));
QString h;
heightLabel->setText(h.setNum(height()));
QString r;
r = temp1.setNum(rect().x())+","+temp2.setNum(rect().y())+","+
temp3.setNum(rect().width())+","+temp4.setNum(rect().height());
rectLabel->setText(r);
QString s;
s = temp1.setNum(size().width())+","+temp2.setNum(size().height());
sizeLabel->setText(s);
}
void Geometry::moveEvent(QMoveEvent *)
{
updateLabel();
}
void Geometry::resizeEvent(QResizeEvent *)
{
updateLabel();
}



main.cpp

#include "mainwindow.h"

#include <QApplication>

#include "geometry.h"



int main(int argc, char *argv[])

{



QApplication a(argc, argv);


Geometry  b;

b.show();


return a.exec();

}



效果截图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: