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();
}

 

posted on 2016-04-12 20:49  流若浅  阅读(8967)  评论(0编辑  收藏  举报

导航