Qt - Что подразумевается под этими строками кода - PullRequest
0 голосов
/ 12 апреля 2011

В книге C++ GUI Programming with Qt 4, являющейся частью создания диалогового приложения, был следующий файл main.cpp:

#include <QApplication>
#include <QDialog>
#include "ui_gotocelldialog.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Ui::GoToCellDialog ui;
QDialog *dialog = new QDialog;
ui.setupUi(dialog);
dialog->show();
return app.exec();
}

Можете ли вы просто описать эти строки кода?

    Ui::GoToCellDialog ui;
    QDialog *dialog = new QDialog;
    ui.setupUi(dialog);

Спасибо.

Ответы [ 3 ]

3 голосов
/ 12 апреля 2011

Давайте посмотрим:

Ui::GoToCellDialog ui;

Эта строка создает экземпляр GoToCellDialog. Как уже было сказано, этот класс автоматически генерируется из файла gotocelldialog.ui. Вариант использования:

  1. Откройте qt-дизайнер и создайте нужный вам интерфейс.
  2. Сохранить файл (в нашем случае gotocelldialog.ui)
  3. В вашем .cpp файле напишите #include "ui_gotocelldialog.h"
  4. Теперь вы можете использовать созданный вами интерфейс
  5. PROFIT ????

Далее:

QDialog *dialog = new QDialog;

Эта строка создает новый экземпляр класса QDialog, представляющий простое модальное окно (обычно называемое dialog ). Но ваше окно будет пустым после этой строки. Вам нужно разместить элементы управления, не так ли? Как вы можете это сделать? Посмотрим:

ui.setupUi(dialog);

Эта строка использует интерфейс, который вы разработали в qt-designer. Он помещает этот интерфейс во вновь созданный диалог. Таким образом, вы можете увидеть все элементы управления в окне. Довольно легко, как для меня.

3 голосов
/ 12 апреля 2011

"ui_gotocelldialog.h" - это файл, автоматически сгенерированный на основе файла "gotocelldialog.ui", который содержит графический интерфейс для диалога. Ui :: GoToCellDialog :: setupUi () должен быть вызван для инициализации интерфейса.

2 голосов
/ 12 апреля 2011

Это устанавливает пользовательский интерфейс, описанный в xt-файле qt ui, размещенном в диалоговом окне / qdialog .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...