Пользовательский интерфейс для дочернего окна в Qt

Я делал некоторые тесты с Qt 5, используя C++, и я увидел большой потенциал! Но я подошел к большой стене, которую я еще не смог пройти.

Я хочу создать виджет, который содержит другие окна (MDI), и я следую некоторым учебникам в Интернете, но окно создается с помощью кода, и я не знаю, как "связать" его с файлом пользовательского интерфейса, который я уже проектировал,

Я следую учебному пособию по MDI, которое поставляется с Qt Creator, оно отлично работает, но, как я уже говорил, не работает с пользовательскими интерфейсами. И я обнаружил, что это именно то, что я хочу, я следую ему, и оно не работает, я также скачал исходный код из примера, запустил его и все еще не работает. Он открывает окно, в котором ничего нет.

Если у кого-то есть пример, хороший учебник или книга с нужной информацией, я буду признателен.

Большое спасибо, что нашли время, чтобы прочитать это.

1 ответ

Решение

Вы должны разместить QMdiArea Виджет на вашем окне. Он предоставляет область, в которой отображаются окна MDI. Это можно сделать через дизайнера.

Все ваши подокна должны наследоваться QMdiSubWindow который предоставляет подоконный класс для QMdiArea:

class MyWindow : public QMdiSubWindow
{
    Q_OBJECT

public:
    explicit MyWindow(QWidget *parent = 0);
    ~MyWindow();
};

После создания собственного подокна вы можете добавить его в область MDI, например:

MyWindow * subWindow = new MyWindow(ui->mdiArea);
MyWindow->show();

Вы также можете добавить подокна в дизайнере, щелкнув правой кнопкой мыши на области MDI и выбрав:

"Добавить подокно"

Это добавит подокно, которое можно просмотреть в дизайнере. Таким же образом вы можете добавить произвольные виджеты в добавленные подокна в конструкторе.

Другие вопросы по тегам