Вопрос

В моем приложении QT я использую QTabWidget для базовой навигации.Этот QTabWidget я настраиваю в пользовательском интерфейсе.На некоторых вкладках QTabWidget мне нужен QStackedWidget, чтобы иметь возможность «углубиться в представление».

Я также попробовал добавить QStackedWidget внутри пользовательского интерфейса, но он автоматически добавляет страницу в стек.Вместо этого я хочу добавить страницы для QStackedWidget в код.Если я в коде попытаюсь сделать это, у stackedWidget уже есть стандартная страница, поэтому myWidget будет вторым в стеке.

MyWidget *myWidget = new MyWidget(ui.stackedWidget);
ui.stackedWidget->addWidget(myWidget);

Как лучше всего и проще всего настроить QStackedWidget на вкладке QTabWidget?

Это было полезно?

Решение

Как насчет:

QTabWidget *myTabWidget = new QTabWidget(this);
QStackedWidget *myStackedWidget = new QStackedWidget(myTabWidget);

myTabWidget->addTab(myStackedWidget, "Stacked Widget");

Также вы можете удалить все существующие страницы стека в Qt Designer/Creator.Просто щелкните правой кнопкой мыши сложенный виджет и удалите все существующие страницы.Затем вы можете добавить необходимые страницы в код, используя addWidget().

Другие советы

Я бы сказал - создайте его в пользовательском интерфейсе, так же, как вы (так будет проще разметить/позиционировать, позже добавить другие виджеты на вкладку и т. д.), но просто удалите все существующие страницы (добавленные дизайнером) из кода и добавьте твои новые.

На самом деле Designer из Qt 4.6 позволяет удалять все страницы из сложенного виджета - вам нужно щелкнуть правой кнопкой мыши, перейти в подменю «Страница X из Y» и выбрать «Удалить».Повторяйте, пока все страницы не исчезнут :)

Возможно, они были добавлены в дизайнер совсем недавно, поэтому вам все равно придется удалить их из кода, если у вас более ранняя версия Qt.

Говоря о хранении вещей внутри пользовательского интерфейса, а не в коде, я бы проголосовал за «как можно больше в файле пользовательского интерфейса» :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top