Qt5 学习之路及嵌入式开发教程19:Qt5绘图---位置函数
这次任务要完成Qt5位置函数的界面设计及功能实现
1、建立带有界面的工程Geometry,基类为QDialog
界面设计如下:
其属性设置为:
2、在geometry.h中定义函数
3、在geometry.cpp中添加函数实现功能代码
更新函数:
void Geometry::updateLabel()
{
QString xstr;
ui->xValueLabel->setText(xstr.setNum(x()));
QString ystr;
ui->yValueLabel->setText(ystr.setNum(y()));
QString frmstr;
QString tmpstr1, tmpstr2, tmpstr3, tmpstr4;
frmstr = tmpstr1.setNum(frameGeometry().x()) + ", " +
tmpstr2.setNum(frameGeometry().y()) + ", " +
tmpstr3.setNum(frameGeometry().width()) + ", " +
tmpstr4.setNum(frameGeometry().height());
ui->frameValueLabel->setText(frmstr);
QString posStr;
QString tmpStr1, tmpStr2;
posStr = tmpStr1.setNum(pos().x()) + ", " + tmpStr2.setNum(pos().y());
ui->posValueLabel->setText(posStr);
QString geoStr;
QString geotmpStr1, geotmpStr2, geotmpStr3, geotmpStr4;
geoStr = geotmpStr1.setNum(geometry().x()) + ", " +
geotmpStr2.setNum(geometry().y()) + ", " +
geotmpStr3.setNum(geometry().width()) + ", " +
geotmpStr4.setNum(geometry().height());
ui->geometryValueLabel->setText(geoStr);
QString widthStr, heightStr;
ui->widthValueLabel->setText(widthStr.setNum(width()));
ui->heightValueLabel->setText(heightStr.setNum(height()));
QString rectStr;
QString recttmpStr1, recttmpStr2, recttmpStr3, recttmpStr4;
rectStr = recttmpStr1.setNum(rect().x()) + ", " +
recttmpStr2.setNum(rect().y()) + ", " +
recttmpStr3.setNum(/*rect().width()*/width()) + ", " +
recttmpStr4.setNum(height()/*rect().height()*/);
ui->rectValueLabel->setText(rectStr);
QString sizeStr;
QString sizetmpStr1, sizetmpStr2;
sizeStr = sizetmpStr1.setNum(size().width()) + ", " + sizetmpStr2.setNum(size().height());
ui->sizeValueLabel->setText(sizeStr);
}
重写moveEvent(QMoveEvent *)和resizeEvent(QResizeEvent *)
void Geometry::moveEvent(QMoveEvent *)
{
updateLabel();
}
void Geometry::resizeEvent(QResizeEvent *)
{
updateLabel();
}
4、运行: