当我尝试运行这个应用程序时,出现错误... 错误信息如下:
main.cpp(11): error: expression must have class type int r = dialog.exec(); 我不确定为什么会出现这个错误!!!
我正在使用qmake生成make文件... 我已经将必要的文件添加到*.pro文件中,因为Dialog是从QDialog继承而来的,所以我应该可以访问exec函数!
#include <QtGui>
#include <QDialog>
#include <QtUtil.h>
#include <Mathematics.h>
#include <Pair.h>
#include "View.h"
class QMesseageBox;
class QAction;
class QDialogButtonBox;
class QLabel;
class QLineEdit;
class QPushButton;
class QTextEdit;
class Dialog : public QDialog {
Q_OBJECT
public:
Dialog() {
QHBoxLayout *layout = new QHBoxLayout;
// prevent left vertical box from growing when main window resized
layout->addStretch(1);
QLabel* lab_Layers = new QLabel(tr("Layers"));
d_inline = new QLineEdit;
d_inline->setText("50");
scene = new QGraphicsScene(0, 0, 500, 500);
view = new View;
layout->addWidget(view);
view->setScene(scene);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addLayout(layout);
setLayout(mainLayout);
setWindowTitle(tr("VI Smooth 0.4"));
}
private slots:
// scroll the "after" window when "before" one is scrolled (so they
// remain in sync)
private:
QAction* exitAction;
QtUtil qt;
QLineEdit* d_inline;
QGraphicsScene* scene;
QGraphicsView* view;
};
主类
#include <QApplication>
#include <QMessageBox>
#include "Dialog.h"
int
main(int argc, char **argv) {
QApplication app(argc, argv);
argv++;
Dialog dialog();
// dialog.showMaximized();
int r = dialog.exec();
return 0;
}
Dialog dialog();
是错误的。请用我提供的代码替换它。 - ArlenDialog myDialog()
这样的操作时,实际上你正在创建一个函数原型,该原型表示“我有一个返回 Dialog 且不带参数的函数”。此外,当您执行Dialog dialog
时,您正在堆栈上创建该对象。尽管在此处可以正常工作,但对于更大的项目,您可能需要考虑动态分配,即Dialog* dialog = new Dialog();
- Arlen