U
Undergiven1 декабря 2020 г. 3:37

Qt наследование и виджеты

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
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

1
U
  • 1 декабря 2020 г. 3:47
  • (ред.)

Наверное нужно написать класс-интерфейс IBasic
и потом попробовать
IBasic *b = qobject_cast (tmpWidget);

?

Но у меня в базовых классах A,B - формы... Получается, что A,B должны будут наследоваться от QWidget-а и от IBasic?

    Комментарии

    Только авторизованные пользователи могут публиковать комментарии.
    Пожалуйста, авторизуйтесь или зарегистрируйтесь
    AD

    C++ - Тест 004. Указатели, Массивы и Циклы

    • Результат:50баллов,
    • Очки рейтинга-4
    m
    • molni99
    • 26 октября 2024 г. 1:37

    C++ - Тест 004. Указатели, Массивы и Циклы

    • Результат:80баллов,
    • Очки рейтинга4
    m
    • molni99
    • 26 октября 2024 г. 1:29

    C++ - Тест 004. Указатели, Массивы и Циклы

    • Результат:20баллов,
    • Очки рейтинга-10
    Последние комментарии
    i
    innorwall11 ноября 2024 г. 22:12
    Django - Урок 055. Как написать функционал auto populate field Freckles because of several brand names retin a, atralin buy generic priligy
    i
    innorwall11 ноября 2024 г. 18:23
    QML - Урок 035. Использование перечислений в QML без C++ priligy cvs 24 Together with antibiotics such as amphotericin B 10, griseofulvin 11 and streptomycin 12, chloramphenicol 9 is in the World Health Organisation s List of Essential Medici…
    i
    innorwall11 ноября 2024 г. 15:50
    Qt/C++ - Урок 052. Кастомизация Qt Аудио плеера в стиле AIMP It decreases stress, supports hormone balance, and regulates and increases blood flow to the reproductive organs buy priligy online safe Promising data were reported in a PDX model re…
    i
    innorwall11 ноября 2024 г. 14:19
    Алгоритм сортировки кучей The role of raloxifene in preventing breast cancer priligy precio
    i
    innorwall11 ноября 2024 г. 13:55
    PyQt5 - Урок 006. Работа с QTableWidget buy priligy 60 mg 53 have been reported by Javanovic Santa et al
    Сейчас обсуждают на форуме
    i
    innorwall11 ноября 2024 г. 20:56
    добавить qlineseries в функции buy priligy senior brother Chu He, whom he had known for many years
    i
    innorwall11 ноября 2024 г. 10:55
    Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
    9
    9Anonim25 октября 2024 г. 9:10
    Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
    ИМ
    Игорь Максимов3 октября 2024 г. 4:05
    Реализация навигации по разделам Спасибо Евгений!

    Следите за нами в социальных сетях