Qt Использование UI-файла и QUiLoader

Я занимаюсь разработкой приложения на C ++ с использованием Qt. Я хочу использовать пользовательский интерфейс Qt Designer в своем коде, поскольку он (в XML) не компилирует код и не жестко его кодирует. Я использую пример кода с этого URL.

ссылка на пример кода

В этом примере XML применяется к QWidget, а затем отображается QWidget. Как это можно реализовать с помощью QMainWindow, имея в виду, что я выбрал форму главного окна в Qt Designer, которая уже добавляет центральный виджет?

2

Решение

Есть как минимум два способа сделать это.

Способ 1

Используйте Qt Designer, чтобы добавить вертикальный макет к центральному виджету. Вы не можете сделать это для виджета без детей, поэтому просто добавьте кнопку, примените макет и удалите эту кнопку. Дайте вашему макету хорошее имя, например «Main_layout».

Скопируйте реализацию конструктора из примера и измените эти строки:

QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(formWidget);
setLayout(layout);

к этому:

ui->main_layout->addWidget(formWidget);

Способ 2

Вам не нужно манипулировать с формой главного окна. Просто скопируйте реализацию конструктора из примера и измените те же строки о макете так:

setCentralWidget(formWidget);

Автоматически сгенерированный центральный виджет будет полностью заменен динамически загружаемой формой.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]