QStackedWidget внутри вкладки QTabWidget? - PullRequest
1 голос
/ 26 января 2010

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

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

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

Какой самый лучший и простой способ настроить QStackedWidget на вкладке QTabWidget?

Ответы [ 2 ]

1 голос
/ 26 января 2010

Как насчет:

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

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

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

0 голосов
/ 26 января 2010

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

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

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

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

...