KM
17 сентября 2020 г. 18:51

не знаю что писать в cpp

Inheritance

пытаюсь понять как работатет наследование
класс экшион будет показывать елекменты
проблемы в создании сpp (action)
в этой строчке:

"MenuElement()"

actionn.h

  1. #ifndef ACTIONN_H
  2. #define ACTIONN_H
  3.  
  4. #include <QWidget>
  5. #include "menuelement.h"
  6. namespace Ui {
  7. class Actionn;
  8. }
  9.  
  10. class Actionn:public MenuElement, public QWidget
  11. {
  12. Q_OBJECT
  13.  
  14. public:
  15. explicit Actionn(QWidget *parent = nullptr);
  16. ~Actionn();
  17.  
  18. private:
  19. Ui::Actionn *ui;
  20. };
  21.  
  22. #endif // ACTIONN_H
  23.  

actionn cpp:

  1. #ifndef ACTIONN_H
  2. #define ACTIONN_H
  3.  
  4. #include <QWidget>
  5. #include "menuelement.h"
  6. namespace Ui {
  7. class Actionn;
  8. }
  9.  
  10. class Actionn:public MenuElement, public QWidget
  11. {
  12. Q_OBJECT
  13.  
  14. public:
  15. explicit Actionn(QWidget *parent = nullptr);
  16. ~Actionn();
  17.  
  18. private:
  19. Ui::Actionn *ui;
  20. };
  21.  
  22. #endif // ACTIONN_H

вот мой
menuelement cpp

  1. #include "menuelement.h"
  2.  
  3.  
  4. QPushButton *MenuElement::getBtn()
  5. {
  6. return btn;
  7. }
  8.  
  9. MenuElement::MenuElement(const QString &name, QWidget* prnt)
  10. {
  11. btn = new QPushButton(name,prnt);
  12.  
  13. btn->connect(btn, &QPushButton::clicked,[=]() {doCmd();});
  14. }
  15.  

и menuelement.h

  1. #ifndef MENUELEMENT_H
  2. #define MENUELEMENT_H
  3.  
  4. #include <QPushButton>
  5.  
  6.  
  7.  
  8. class MenuElement
  9. {
  10. QPushButton* btn;
  11. public:
  12. MenuElement(const QString& name, QWidget* prnt);
  13. virtual void doCmd()=0;
  14. QPushButton *getBtn();
  15. };
  16.  
  17. #endif // MENUELEMENT_H
  18.  
2

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

3
nayk1982
  • 17 сентября 2020 г. 19:28

В actionn.cpp что-то типа этого:

  1. #include "actionn.h"
  2.  
  3. Actionn::Actionn(QWidget *parent): QWidget(parent), ui(new Ui::Actionn)
  4. {
  5. // constructor
  6. }
  7.  
  8. Actionn::~Actionn()
  9. {
  10. //destructor
  11. delete ui;
  12. }
    KM
    • 18 сентября 2020 г. 11:19
    • Ответ был помечен как решение.

    почти Actionn::Actionn(const QString& name, QWidget *parent) : //lista inicjalizacyjna
    MenuElement(name,parent),
    QWidget(parent),
    ui(new Ui::Actionn)

    1. вдруг кто то мучался ка к я чтоб было
      KM
      • 22 сентября 2020 г. 11:15

      еще лучше сначала идет QWidget потом meny element

        Комментарии

        Только авторизованные пользователи могут публиковать комментарии.
        Пожалуйста, авторизуйтесь или зарегистрируйтесь
        • Последние комментарии
        • IscanderChe
          12 апреля 2025 г. 17:12
          Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
        • AK
          1 апреля 2025 г. 11:41
          Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
        • Evgenii Legotckoi
          9 марта 2025 г. 21:02
          К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
        • VP
          9 марта 2025 г. 16:14
          Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
        • ИМ
          22 ноября 2024 г. 21:51
          Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…