Russian Qt Forum

Qt => Qt-инструментарий => Тема начата: Jkc от Ноябрь 24, 2010, 13:00



Название: разбивка страниц QStackedWidget на отдельные h cpp файлы
Отправлено: Jkc от Ноябрь 24, 2010, 13:00
Есть StackedWidget  на страницах которого много кнопок и т.п.
Можно ли использовать дизайнер что бы расставить элементы по страницам, и что бы каждая страница была описана в отдельных cpp и h файлах каждой страницы StackedWidget а.  Дабы обработку сигналов-слотов не писать в один cpp всего  StackedWidget . 
Пока я  пытался делать так.
1. Создаю класс с базовым от Qwidget  'page1'
2.  в редакторе формы на уже созданной странице выбираю Promoted Widgets, добавляю класс от Qwidget называю page1  и устанавливаю Promoted на page1.

Всё компилится в файле ui_ mystackwid.h  появляется следующая запись

        page = new page1();
        page->setObjectName(QString::fromUtf8("page"));
        pushButton_2 = new QPushButton(page);
        pushButton_2->setObjectName(QString::fromUtf8("pushButton_2"));
        pushButton_2->setGeometry(QRect(280, 260, 93, 27));
        MyStackWid->addWidget(page);

но вот при попытке задать сигна-слоты в файлах page1.p  cpp не какого результата.
Если page1 страницу из дизайнера и создать её раками  в   mystackwid.h mystackwid.cpp
то всё работает но прописывать руками каждый элемент уж очень не удобно.


Название: Re: разбивка страниц QStackedWidget на отдельные h cpp файлы
Отправлено: UVV от Ноябрь 25, 2010, 10:42
Ну разбить класс на несколько cpp тебе никто не мешает, но заголовок должен быть один.


Название: Re: разбивка страниц QStackedWidget на отдельные h cpp файлы
Отправлено: Jkc от Ноябрь 26, 2010, 12:03
Всё оказалось значительно проще,
просто добавляешь класс с формой виджет скажем stack_page1
при том генерируется форма   stack_page1.ui куда кидаем всё что нам нужно, кнопки и т.д.
, в  stack_page1.cpp и  stack_page1.h всё описываем.
Далее  размещаем наш stack_page1 руками  на MyStackedWidget. 
Быстро, просто и всё разведено по страницам.
 


Название: Re: разбивка страниц QStackedWidget на отдельные h cpp файлы
Отправлено: break от Декабрь 07, 2010, 01:35
Цитировать
Далее  размещаем наш stack_page1 руками  на MyStackedWidget.

Руками вы имеете ввиду в коде через метод QStackedWidget.addWidget(...) ? Значит все правильно делаете - это особенно удобно если в QStackedWidget надо разместить виджеты о которых форма на которой он расположен вообще ничего не знает... Например окно настроек переменного числа плагинов, для которых есть стандартный класс интерфейса.