Qt5 学习之路及嵌入式开发教程19:Qt5绘图---位置函数

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、运行:

原创文章 73 获赞 16 访问量 3万+

猜你喜欢

转载自blog.csdn.net/fjqlldg/article/details/105851441