【发布时间】: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);”
-
ui和widg是如何定义的?ui是否有一个名为verticalLayout_3的成员? -
我在设计师 Qt 中创建了它们。我是qt的初学者。 widg添加如下:“添加新的(右键单击项目)-> Qt Designer Form Class -> Widget”
-
好像ui只定义在MainWindow的构造函数中?