Qt наследование и виджеты
Приветствую, любимый форум! =)
Очень нужен совет, куда копать, как сделать...
Есть mainwindow, на котором размещен комбобокс (с вариантами выбора А1, А2, B1, B2) и фрейм для виджета.
В зависимости от выбора в комбобоксе - в фрейм добавляется один из виджетов.
Виджеты представлены базовыми классами: A, B.
Эти базовые классы наследуются от QWidget-а.
Но от этих базовых классов A,B наследуются дочерние A1, A2, B1, B2.
у комбобокса описан слот
on_combobox_activated(int index){ QLayoutItem *item; while((item = layout->takeAt(0)) != 0){ delete item->widget(); delete item; } QWidget *tmpWidget = nullptr; if(ui->comboBox_moduleType->itemData(index, Qt::UserRole) == "A1") tmpWidget = new A1(); else if(ui->comboBox_moduleType->itemData(index, Qt::UserRole) == "B2") tmpWidget = new B2(); if(tmpWidget != nullptr){ layout->addWidget(tmpWidget); } }
Виджеты добавляются нормально, но я не понимаю, как вызвать методы этих классов A1, B2 и тд...
Подскажите, как организовать эту архитектуру?
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
- Ora Iro
- Жел. 24, 2024, 6:38 Т.Ж.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:40ұпай,
- Бағалау ұпайлары-8
- Akiv Doros
- Қар. 11, 2024, 2:58 Т.Қ.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:50ұпай,
- Бағалау ұпайлары-4
- molni99
- Қаз. 26, 2024, 1:37 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:80ұпай,
- Бағалау ұпайлары4
Наверное нужно написать класс-интерфейс IBasic
(tmpWidget);
и потом попробовать
IBasic *b = qobject_cast
?
Но у меня в базовых классах A,B - формы... Получается, что A,B должны будут наследоваться от QWidget-а и от IBasic?