U
Dec. 1, 2020, 2:37 p.m.

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

qt

Приветствую, любимый форум! =)
Очень нужен совет, куда копать, как сделать...

Есть mainwindow, на котором размещен комбобокс (с вариантами выбора А1, А2, B1, B2) и фрейм для виджета.
В зависимости от выбора в комбобоксе - в фрейм добавляется один из виджетов.

Виджеты представлены базовыми классами: A, B.
Эти базовые классы наследуются от QWidget-а.

Но от этих базовых классов A,B наследуются дочерние A1, A2, B1, B2.

у комбобокса описан слот

  1. on_combobox_activated(int index){
  2. QLayoutItem *item;
  3. while((item = layout->takeAt(0)) != 0){
  4. delete item->widget();
  5. delete item;
  6. }
  7.  
  8. QWidget *tmpWidget = nullptr;
  9. if(ui->comboBox_moduleType->itemData(index, Qt::UserRole) == "A1") tmpWidget = new A1();
  10. else if(ui->comboBox_moduleType->itemData(index, Qt::UserRole) == "B2") tmpWidget = new B2();
  11.  
  12. if(tmpWidget != nullptr){
  13. layout->addWidget(tmpWidget);
  14. }
  15. }

Виджеты добавляются нормально, но я не понимаю, как вызвать методы этих классов A1, B2 и тд...
Подскажите, как организовать эту архитектуру?

1

Do you like it? Share on social networks!

1
U
  • Dec. 1, 2020, 2:47 p.m.
  • (edited)

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

?

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

    Comments

    Only authorized users can post comments.
    Please, Log in or Sign up
    • Last comments
    • AK
      April 1, 2025, 11:41 a.m.
      Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
    • Evgenii Legotckoi
      March 9, 2025, 9:02 p.m.
      К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
    • VP
      March 9, 2025, 4:14 p.m.
      Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
    • ИМ
      Nov. 22, 2024, 9:51 p.m.
      Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
    • Evgenii Legotckoi
      Oct. 31, 2024, 11:37 p.m.
      Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup