Qt问题:窗口设计问题一

Qt5.5版本使用

setGeometryDp: Unable to set geometry 10x10+10+10 on QWidgetWindow/'QLabelClassWindow'. Resulting geometry:  180x10+10+10 (frame: 11, 45, 11, 11, custom margin: 0, 0, 0, 0, minimum size: 0x0, maximum size: 10x10).

情景描述

建立一个最简单的窗口:
上面添加一个QPushButton。
void MainWindow::on_pushButton_clicked()
{
    QLabel *lb = new QLabel();
    lb->setText("YOU");
    lb->show();
}
//点击QPushButton,会报出这样的警告。

导致警告的原因:

由于QLabel没有用本窗口作为父窗口,所以其几何位置是随意变换的,所以构造时出现了问题:
由于他的父对象几何框架较小不能容纳下子类视图,所以导致了对父对象的重新构造。

解决问题的方法

1、通过以下的构造方式
void MainWindow::on_pushButton_clicked()
{
	//利用父类视图构造子类视图
    QLabel *lb = new QLabel(this);
    lb->setText("YOU");
    lb->show();
}
2、通过设置固定的位置和窗口大小
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //this->setGeometry(QRect(0,0,1024,768));
}
void MainWindow::on_toolButton_clicked()
{

    QLabel *lb = new QLabel();
    //在这里,将此窗口设置为固定的
    lb->setGeometry(QRect(10,10,10,10));
    lb->setMaximumHeight(10);
    lb->setMaximumWidth(10);
    lb->setMinimumHeight(10);
    lb->setMinimumWidth(10);
    lb->setText("Hello");
    lb->show();
}

原创文章 59 获赞 39 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_28174951/article/details/103217896
今日推荐