![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
silver47 |
![]()
Сообщение
#1
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: ![]() ![]() ![]() |
Доброго времени суток.
Задача такая: есть класс MainWindow, зависящий от QWidget. Есть другой класс, к примеру MainTab, который ставиться в QTabWidget, расположенного на MainWindow. Необходимо предоставить доступ из класса MainTab к элементам класса MainWindow. Хотел сделать, унаследовав MainTab от MainWindow. maintab.h:
Но, получается множественное наследование от QWidget (и MainWindow и MainTab наследуются от QWidget) переделываю на такое:
Ругается, что не указан класс до { Сделал передачей указателей на необходимые элементы класса MainWindow в конструктор MainTab. Вопрос: как следует это делать(не передачу указателя в конструкторе, а обращение к элементам одного класса из другого) правильно? Спасибо. |
|
|
![]() |
igor_bogomolov |
![]()
Сообщение
#2
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
Задача такая: есть класс MainWindow, зависящий от QWidget. Есть другой класс, к примеру MainTab, который ставиться в QTabWidget, расположенного на MainWindow. теоритически, если бы такая конструкция была возможна, доступа до нужных вам данных вы бы не получили. Существующий MainWindow и тот что создастся при создании MainTab - это два разных объекта одного типа. Соответственно у каждого из них свой набор данных, никак не связанных (если конечно они не статические, что врят ли)Необходимо предоставить доступ из класса MainTab к элементам класса MainWindow. Хотел сделать, унаследовав MainTab от MainWindow. Решений можно придумать много. Можно передать указатель MainWindow в MainTab, и получать доступ к нужным данным через интерфейс MainWindow. Можно, как ты и сделал, в конструкторе передавать необходимые данные. Если данных много, это может быть неудобным, тогда можно написать пару функций для передачи этих данных (что то типа setSqlDatabase). P.S. И совет, учите с++. Название темы, как раз то с чего можно начать. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 7.3.2025, 22:37 |