您的位置:首页 > 大数据 > 人工智能

QWidget::setLayout: Attempting to set QLayout "" on MainWindow "", which already has a layout

2013-07-06 15:56 971 查看
今天QT写程序时,发现了一个问题,就是我在一个窗口中放置了几个按钮,可是那几个按钮在最后在显示图形中始终无法出现,具体实现代码如下:

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)

{

a = new QPushButton(tr("123"));

b = new QPushButton(tr("456"));

c = new QPushButton(tr("789"));

layout = new QVBoxLayout(this);

layout->addWidget(a);

layout->addWidget(b);

layout->addWidget(c);


}


经过一番查阅之后,发现原来是因为窗口继承的是QMainwindow,所以需要设置 setCentralWidget();即把代码改成如下即可:

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)

{

a = new QPushButton(tr("123"));

b = new QPushButton(tr("456"));

c = new QPushButton(tr("789"));

 layout = new QVBoxLayout();

layout->addWidget(a);

layout->addWidget(b);

layout->addWidget(c);

 
QWidget * widget = new QWidget (this) ;
 widget->setLayout(layout) ;
 this->setCentralWidget(widget) ;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐