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

教程中Qt版本为5.0.1,代码如下:QGridLayout*mainLayout=newQGridLayout(this);mainLayout->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,同样的代码,显示结果如图:

本意是将控件布置成两行两列,却出现上面的结果。我该如何作出修改?
展开
 我来答
fengshh1383
2014-07-05 · TA获得超过331个赞
知道小有建树答主
回答量:126
采纳率:100%
帮助的人:130万
展开全部

完全没问题啊,我的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);

 
这是运行截图:

__D_c___
2018-08-01
知道答主
回答量:4
采纳率:0%
帮助的人:3598
展开全部
在他的第14行插入以下三句代码
QWidget *centralWidget = new QWidget();
centralWidget->setLayout(mainLayout);
setCentralWidget(centralWidget);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晓VS龙剑杀
2018-07-10
知道答主
回答量:1
采纳率:0%
帮助的人:847
展开全部
你的基类是QMainWindow,所以不行。你把基类换成QWidget就OK了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b99fc35
2016-01-03 · TA获得超过237个赞
知道答主
回答量:238
采纳率:0%
帮助的人:62万
展开全部
你最后怎么改的啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式