第6章:Geometry

1,区域位置相关函数

2,源码:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    this->setWindowTitle("Geometry");

    xLabel      = new QLabel(tr("函数 x():"));
    xValueLabel = new QLabel;
    yLabel      = new QLabel(tr("函数 y():"));
    yValueLabel = new QLabel;
    FrmLabel      = new QLabel(tr("函数 frameGeometry():"));
    FrmValueLabel = new QLabel;
    posLabel      = new QLabel(tr("函数 pos():"));
    posValueLabel = new QLabel;
    geoLabel      = new QLabel(tr("函数 geometry():"));
    geoValueLabel = new QLabel;
    widthLabel       = 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;

    imageLabel      = new QLabel;

    QImage image;
    image.load(":/image/geometry.png");
    QMatrix martix;
    martix.scale(1, 1);
    image = image.transformed(martix);
    imageLabel->setPixmap(QPixmap::fromImage(image));
    imageLabel->setMaximumWidth(image.width());
    imageTextEdit   = new QTextEdit;
    imageTextEdit->setMaximumWidth(image.width());
    imageTextEdit->setMinimumHeight(image.height());
    QTextCharFormat fmt;
    fmt.setFontFamily(tr("宋体"));
    fmt.setFontPointSize(10);
    fmt.setFontWeight(70);
    imageTextEdit->setCurrentCharFormat(fmt);
    imageTextEdit->insertPlainText(tr("1: x(), y(), pos() 函数的作用都是获得整体窗体左上角的坐标位置\r\n\n"));
    imageTextEdit->insertPlainText(tr("2: frameGeometry()获得整体窗体的坐上定点和长 宽值\r\n\n"));
    imageTextEdit->insertPlainText(tr("3: geometry()获得窗体内中央区域的左上顶点及长 宽值\r\n\n"));
    imageTextEdit->insertPlainText(tr("4: width() height() 获得的是中央区域的长 宽值\r\n\n"));
    imageTextEdit->insertPlainText(tr("5: rect() size() 获得的是中央区域的长 宽值"));


    mainLayout      = new QGridLayout(ui->centralWidget);

    mainLayout->addWidget(imageLabel, 0, 0, 4, 1);
    mainLayout->addWidget(imageTextEdit, 4, 0, 5, 1);

    mainLayout->addWidget(xLabel, 0, 1, 1, 1);
    mainLayout->addWidget(xValueLabel, 0, 2, 1, 1);

    mainLayout->addWidget(yLabel, 1, 1, 1, 1);
    mainLayout->addWidget(yValueLabel, 1, 2, 1, 1);

    mainLayout->addWidget(FrmLabel, 3, 1, 1, 1);
    mainLayout->addWidget(FrmValueLabel, 3, 2, 1, 1);

    mainLayout->addWidget(posLabel, 2, 1, 1, 1);
    mainLayout->addWidget(posValueLabel, 2, 2, 1, 1);

    mainLayout->addWidget(geoLabel, 4, 1, 1, 1);
    mainLayout->addWidget(geoValueLabel, 4, 2, 1, 1);

    mainLayout->addWidget(widthLabel, 5, 1, 1, 1);
    mainLayout->addWidget(widthValueLabel, 5, 2, 1, 1);

    mainLayout->addWidget(heightLabel, 6, 1, 1, 1);
    mainLayout->addWidget(heightValueLabel, 6, 2, 1, 1);

    mainLayout->addWidget(rectLabel, 7, 1, 1, 1);
    mainLayout->addWidget(rectValueLabel, 7, 2, 1, 1);

    mainLayout->addWidget(sizeLabel, 8, 1, 1, 1);
    mainLayout->addWidget(sizeValueLabel, 8, 2, 1, 1);

    updateLabel();

}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::updateLabel()
{
    xValueLabel->setText(QString::number(this->x()));

    yValueLabel->setText(QString::number(this->y()));

    FrmValueLabel->setText( QString::number(this->frameGeometry().x()) + ","
                          + QString::number(this->frameGeometry().y()) + ","
                          + QString::number(this->frameGeometry().width()) + ","
                          + QString::number(this->frameGeometry().height()));

    posValueLabel->setText(  QString::number(this->pos().x()) + ","
                           + QString::number(this->pos().y()));

    geoValueLabel->setText(   QString::number(this->geometry().x()) + ","
                            + QString::number(this->geometry().y()) + ","
                            + QString::number(this->geometry().width()) + ","
                            + QString::number(this->geometry().height()));

    widthValueLabel->setText(QString::number(this->width()));

    heightValueLabel->setText(QString::number(this->height()));

    rectValueLabel->setText(  QString::number(this->rect().x()) + ","
                            + QString::number(this->rect().y()) + ","
                            + QString::number(this->width()) + ","
                            + QString::number(this->height()));

    sizeValueLabel->setText(  QString::number(this->size().width()) + ","
                            + QString::number(this->size().height()));

}


void MainWindow::moveEvent(QMouseEvent *event)
{
    Q_UNUSED(event);

    updateLabel();
}

void MainWindow::resizeEvent(QResizeEvent *event)
{
    Q_UNUSED(event);

    updateLabel();
}

3,效果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ksmtnsv37297/article/details/86534291