Qt 【widget如何铺满窗口】

刚接触qt不是很长时间,都是使用ui拖拽控件实现界面,然后发现有些问题就是控件一旦多了起来,拖拽就不好控制了,然后就转而使用纯代码开发。

一下是碰到第一个问题:

创建一个MainWidget;

           MainLayout(mainWidget);

           showBtn("show");

           imageLabel("image");

 connect(showBtn,&QPushButton::clicked,this,&Myapp::showInfo);

一般需要窗口初始化 resize(300,300);【没有的话显示出来的小窗口会有些别扭】

那么这时候运行显示的widget是很小的,本以为是位置的问题,或者setAlignment();

并非如此,widget中没有setAlignment,位置move那是移动了窗口,都不是。

于是我在槽之中添加  widget.size();得到其大小Qsize(93,59);

于是修改widget->resize(300,300)【注意其中大小就是你窗口的大小】

以下是源码:

main
{
    resize(300,300);
    mainWidget = new QWidget(this);
    mainLayout = new QVBoxLayout(mainWidget);
    imageLabel = new QLabel("image");
    ShowBtn = new QPushButton("Show");

    mainWidget->resize(300,300);
    mainLayout->addWidget(imageLabel);
    mainLayout->addWidget(ShowBtn);
    //mainLayout->setAlignment(mainWidget,Qt::AlignHCenter);

    connect(ShowBtn,&QPushButton::clicked,this,&NoUi::showInfo);
}
void Myapp::showInfo()
{
    QMessageBox::information(this,"tips","hello?");
    qDebug()<<mainWidget->size();
}


原文地址:https://www.cnblogs.com/liuruoqian/p/5384383.html