【问题标题】:error: expected primary-expression before ')' token错误:“)”标记之前的预期主表达式
【发布时间】:2012-10-05 23:17:05
【问题描述】:

我正在尝试在按下“pushButton_2”后在 MainWindow 的图层中显示小部件“widg”,但我收到此错误:“expected primary-expression before ')' token”

主窗口.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "widg.h"
#include "ui_widg.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QObject::connect(ui->pushButton_2, SIGNAL(clicked()), SLOT(slotPush2()));
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::slotPush2()
{
    ui->verticalLayout_3->addWidget(widg);
}

主窗口.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

private slots:
    void slotPush2();
};


#endif // MAINWINDOW_H

widg.h

#ifndef WIDG_H
#define WIDG_H

#include <QWidget>

namespace Ui {
class widg;
}

class widg : public QWidget
{
    Q_OBJECT

public:
    explicit widg(QWidget *parent = 0);
    ~widg();

private:
    Ui::widg *ui;
};

#endif // WIDG_H

widg.cpp

#include "widg.h"
#include "ui_widg.h"

widg::widg(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::widg)
{
    ui->setupUi(this);
}

widg::~widg()
{
    delete ui;
}

请帮帮我,我的错误是什么?

【问题讨论】:

  • 第 22 行,“ui->verticalLayout_3->addWidget(widg);”
  • uiwidg 是如何定义的? ui 是否有一个名为 verticalLayout_3 的成员?
  • 我在设计师 Qt 中创建了它们。我是qt的初学者。 widg添加如下:“添加新的(右键单击项目)-> Qt Designer Form Class -> Widget”
  • 好像ui只定义在MainWindow的构造函数中?

标签: c++ qt


【解决方案1】:

很难准确理解你的意图,但也许你的意思是这样的:

void MainWindow::slotPush2()
{
    ui->verticalLayout_3->addWidget(new widg(this));
}

【讨论】:

    猜你喜欢
    • 2013-01-13
    • 2017-09-24
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多