07 listWidget->addItem(tr("Advanced"));
08 listWidget->addItem(tr("Appearance"));
09 stackedLayout = new QStackedLayout;
10 stacked Layout->addWidget(appearancePage);
11 stackedLayout->addWidget(webBrowserPage);
12 stackedLayout->addWidget(mailAndNewsPage);
13 stackedLayout->addWidget(advancedPage);
14 connect(listWidget, SIGNAL(currentRowChanged(int)).
15 stackedLayout, SLOT(setCurrentIndex(int)));
16 listWidget->setCurrentRow(0);
17 }
Мы создаем
Подобные формы также очень легко создавать при помощи
1. Создайте новую форму на основе шаблона «Dialog» или «Widget».
2. Добавьте в форму виджеты
3. Заполните каждую страницу дочерними виджетами и менеджерами компоновки. (Для создания новой страницы нажмите на правую кнопку мышки и выберите пункт меню Insert Page (вставить страницу); для перехода с одной страницы на другую щелкните по маленькой левой или правой стрелке, расположенной в верхнем правом углу виджета
4. Расположите виджеты рядом, используя менеджер горизонтальной компоновки.
5. Подсоедините сигнал виджета списка элементов
6. Установите значение свойства виджета списка элементов
Поскольку мы реализовали переключение страниц с помощью предварительно определенных сигналов и слотов, диалоговое окно будет правильно работать при предварительном просмотре в
Разделители
Разделитель
Дочерние виджеты QSplitter автоматически располагаются рядом (или один под другим) в порядке их создания, причем между соседними виджетами размещаются разделительные линии. Ниже приводится программный код для создания представленного на рис. 6.7 окна:
01 int main(int argc, char *argv[])
02 {
03 QApplication app(argc, argv);
04 QTextEdit *editor1 = new QTextEdit;
05 QTextEdit *editor2 = new QTextEdit;
06 QTextEdit *editor3 = new QTextEdit;
07 QSplitter splitter(Qt::Horizontal);
08 splitter.addWidget(editor1);
09 splitter.addWidget(editor2);
10 splitter.addWidget(editor3);
11 splitter.show;
12 return app.exec;
13 }
Этот пример состоит из трех полей редактирования
Можно обеспечить сложную компоновку путем применения вложенных горизонтальных и вертикальных разделителей
Ниже приводится программный код конструктора подкласса