gpt4 book ai didi

qt - Qt-setLayout()和setCentralWidget()

转载 作者:行者123 更新时间:2023-12-02 06:55:07 28 4
gpt4 key购买 nike

我最近开始与Qt和Qwt合作。我一个人找不到我的错误。请帮我。有代码。
我知道我在这里某处的错误:

.h文件

  ...

class MainWindow : public
QMainWindow
{
Q_OBJECT
QWidget *centralWidget;
public:
MainWindow(QWidget *parent = 0);
...
}

.cpp
  MainWindow::MainWindow(QWidget *parent):
QMainWindow(parent) {
...
...
void MainWindow::setPlotButton() {
button = new QPushButton("push"),
button->setCheckable(true);
connect(button, SIGNAL(toggled(bool)), this, SLOT(toggled(bool)))
QHBoxLayout *plotsLayout = new QHBoxLayout;
plotsLayout->setSpacing(10);
plotsLayout->addWidget(funPlot);
QHBoxLayout *buttonsLayout = new QHBoxLayout ;
buttonsLayout->addWidget(button);
QVBoxLayout *widgetLayout = new QVBoxLayout;
widgetLayout->addLayout(plotsLayout);
widgetLayout->addLayout(buttonsLayout);
setLayout(widgetLayout);
...
}

我收到一条消息“QWidget::setLayout:试图在已经具有布局的MainWindow“”上设置QLayout“”。我发现我必须使用setCentralWidget()函数,但是我到底应该更改什么?

最佳答案

尝试调用以下方法,而不是仅调用setLayout(widgetLayout);即可调用MainWindow方法:

centralWidget()->setLayout(widgetLayout);

主窗口本身已经拥有 centralwidgetQMenuBarQStatusBarQAction -Bar的布局。

您希望新的窗口小部件驻留在中央窗口小部件中,通常也称为“内容窗口小部件”。

关于qt - Qt-setLayout()和setCentralWidget(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33251047/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com