![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
maxvanceffer |
![]()
Сообщение
#1
|
![]() Студент ![]() Группа: Участник Сообщений: 72 Регистрация: 30.5.2009 Из: Moldova Пользователь №: 790 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Стоит вот такая задача :
У меня в программе есть несколько так называемых страничек (WidgetPage) их класс унаследован от QWidget , так вот у них одинаковые функции и задачи в принципе. Управляет ими класс PageManager, каждая из страничек унаследована от класса Page который содержит информацию необходимою для PageManager. И тут вот такая загвоздка хочу использовать сигналы и слоты в классе Page. Но получаеться что QObject должен быть только у одного из базового класса . В структура для нагладности : // Так наследуеться странички WidgetPage:public QWidget,public Page{....}; //А в манагере страничек хотелось бы регестрировать странички для упровления ими вот таким способом void PageManager::register(Page *ptr){ connect(ptr,SIGNAL(NeedData()),this,SLOT(giveData)); } Вообщем двумя словами как сделать бы так чтоб у всех строничек сто пудов были одни и тежи сигналы и слоты (естественно при правильном наследовании) ..... Первое что приходит на ум это унаследовать Page от QWidget а уже потом WidgetPage:public Page . И вопрос правильно ли это будет ? Сообщение отредактировал maxvanceffer - 20.12.2009, 18:54 |
|
|
![]() |
maxvanceffer |
![]()
Сообщение
#2
|
![]() Студент ![]() Группа: Участник Сообщений: 72 Регистрация: 30.5.2009 Из: Moldova Пользователь №: 790 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Во общем щас сам ковырялся и сработало наудивление даже без ругательств компилятора.
Во общем примерно так как я и думал в начале Page:: public QWidget{} WidgetPage:public Page{}; int main(){ WidgetPage *myPage= new WidgetPage; WidgetPage->giveMeData(); // При том что это паблик слот от унаследованого класса Page } И из главного окна видны все сигналы и слоты класса Page и при этом в конструкторе WidgetPage можно спокойно работать с ui формой Если кому интересно могу привести болие подробный код. И что там с виртуальным на следованием ? Но вот с виртуальным наследованием я смотрю затык !!! Сообщение отредактировал maxvanceffer - 21.12.2009, 2:08 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 19.7.2025, 1:41 |