C++ 自定义qdialog的执行
我在尝试运行此应用程序时出错。。。错误消息是: main.cpp(11):错误:表达式必须具有类类型 int r=dialog.exec();我不知道为什么 我正在使用qmake生成make文件。。。我已经向*.pro文件添加了必要的文件,因为对话框是从QDialog继承的,我应该可以访问函数execC++ 自定义qdialog的执行,c++,qt,C++,Qt,我在尝试运行此应用程序时出错。。。错误消息是: main.cpp(11):错误:表达式必须具有类类型 int r=dialog.exec();我不知道为什么 我正在使用qmake生成make文件。。。我已经向*.pro文件添加了必要的文件,因为对话框是从QDialog继承的,我应该可以访问函数exec #include <QtGui> #include <QDialog> #include <QtUtil.h> #include <Mathematics
#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;
};
#包括
#包括
#包括
#包括
#包括
#包括“View.h”
qmessagebox类;
类QAction;
QDialogButtonBox类;
类QLabel;
类QLineEdit;
类按钮;
类QTextEdit;
类对话框:公共QDialog{
Q_对象
公众:
对话(){
QHBoxLayout*布局=新的QHBoxLayout;
//调整主窗口大小时防止左垂直框增长
布局->添加拉伸(1);
QLabel*lab_Layers=新的QLabel(tr(“Layers”);
d_inline=新的QLineEdit;
d_inline->setText(“50”);
场景=新的Qgraphicscene(0,0,500,500);
视图=新视图;
布局->添加小部件(视图);
查看->设置场景(场景);
QVBoxLayout*mainLayout=新的QVBoxLayout;
主布局->添加布局(布局);
设置布局(主布局);
setWindowTitle(tr(“VI平滑0.4”);
}
专用插槽:
//当滚动“before”窗口时,滚动“after”窗口(因此
//保持同步)
私人:
行动*退出;
QtUtil-qt;
QLineEdit*d_内联;
qgraphicscene*场景;
QGraphicsView*视图;
};
主类
#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.h”
int
主(内部argc,字符**argv){
QApplication应用程序(argc、argv);
argv++;
对话框();
//dialog.showMaximized();
int r=dialog.exec();
返回0;
}
它应该是这样的。如果创建对话框
对象,则需要调用show()
。您还需要在main()
中返回app.exec()
#包括
#包括
#包括“Dialog.h”
int
主(内部argc,字符**argv){
QApplication应用程序(argc、argv);
argv++;
对话;
dialog.show()
返回app.exec(argc,argv);
}
您的对话框()代码>是错误的。用我现有的替换它。非常感谢现在它正在工作。。。但是为什么我不能调用dialog()@TurBooRD因为C++是一个混乱,LOL。当你做一些事情,比如“代码>对话MydiAudio())/Cuffe >时,你实际上正在创建一个函数原型,它表示“我有一个返回对话框并且不带参数的函数”,而且,当你做“代码>对话对话框< /C>”时,你正在栈上创建那个对象。这工作在这里,但是对于更大的项目,您可能需要考虑动态分配,即,代码>对话框*对话框=新建对话框()。代码>
#include <QApplication>
#include <QMessageBox>
#include "Dialog.h"
int
main(int argc, char **argv) {
QApplication app(argc, argv);
argv++;
Dialog dialog;
dialog.show()
return app.exec(argc, argv);
}