在Qt5.3.1中如何用addwidget对控件进行布局?

教程中Qt 版本为5.0.1,代码如下:
QGridLayout *mainLayout = new QGridLayout(this); mainLayout->addWidget(label1,0,0); mainLayout->addWidget(lineEdit,0,1); mainLayout->addWidget(label2,1,0); mainLayout->addWidget(button,1,1);我i使用的版本为5.3.1,同样的代码,显示结果如图:

本意是将控件布置成两行两列,却出现上面的结果。我该如何作出修改?

完全没问题啊,我的Qt也是5.3.1,下面代码是在QDialog的构造函数中的,后面的和你的代码完全一样:

    
    QLabel *label1 = new QLabel;
    label1->setText("label1");

    QLineEdit *lineEdit = new QLineEdit;

    QLabel *label2 = new QLabel;
    label2->setText("label2");

    QPushButton *button = new QPushButton;
    button->setText("button");

    QGridLayout *mainLayout = new QGridLayout(this);

    mainLayout->addWidget(label1,0,0);

    mainLayout->addWidget(lineEdit,0,1);

    mainLayout->addWidget(label2,1,0);

    mainLayout->addWidget(button,1,1);

 
这是运行截图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-08-01
在他的第14行插入以下三句代码
QWidget *centralWidget = new QWidget();
centralWidget->setLayout(mainLayout);
setCentralWidget(centralWidget);
第2个回答  2018-07-10
你的基类是QMainWindow,所以不行。你把基类换成QWidget就OK了
第3个回答  2016-01-03
你最后怎么改的啊?
相似回答