выполнение кастомного qdialog - PullRequest
2 голосов
/ 31 декабря 2011

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

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

1 Ответ

1 голос
/ 31 декабря 2011

Это должно выглядеть примерно так.Если вы создаете объект 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...