2011-12-31 4 views
2

Я получаю сообщение об ошибке при попытке запустить это приложение ... сообщение об ошибке:выполнения пользовательских QDialog

main.cpp (11): ошибка: выражение должно иметь тип класса INT R = диалог. 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; 
} 

ответ

1

Это должно выглядеть примерно так. Если вы создаете объект Dialog, вам необходимо позвонить show(). И вам также нужно вернуть app.exec() в main().

#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); 
} 
+0

диалог не появился ... – Eyad

+1

@turbonerd вам, вероятно, нужно вызвать 'show()'. – Arlen

+0

Я пробовал ... Я не могу назвать какую-либо функцию в QDialog :( – Eyad

Смежные вопросы