Evgenii Legotckoi
Шілде 9, 2018, 4:14 Т.Қ.

Qt/C++ - 082-сабақ. Qt Designer бағдарламасындағы теңшелетін виджеттер

Мерзімді түрде Qt Designer графикалық дизайнерінде виджеттерді мұраға алуға және мұраланған виджеттерді пайдалануға қатысты сұрақтар туындайды.

Жалпы код ішінде виджетті пайдалану түсінікті болса, пайдаланушы виджетін ui пішініне қалай тіркеу керектігі бірінші көзқараста түсініксіз.

QPushButton мұраланған батырмасының мысалын қарастырайық.


Пайдаланушы түймесі

QPushButton ішінен мұрагер болатын және mousePressEvent әдісін қайта анықтайтын CustomButton сыныбын ескере отырып. Бұл кодта ерекше ештеңе көрмейсіз, ол тек Qt ішіндегі кейбір виджеттен мұрагер болатын сыныпты қалай жазу керектігін көрсетеді.

CustomButton.h

  1. #ifndef CUSTOMBUTTON_H
  2. #define CUSTOMBUTTON_H
  3.  
  4. #include <QPushButton>
  5.  
  6. class CustomButton : public QPushButton
  7. {
  8. Q_OBJECT
  9. public:
  10. explicit CustomButton(QWidget *parent = nullptr);
  11.  
  12. // QWidget interface
  13. protected:
  14. virtual void mousePressEvent(QMouseEvent* event) override;
  15. };
  16.  
  17. #endif // CUSTOMBUTTON_H

CustomButton.cpp

  1. #include "CustomButton.h"
  2.  
  3. CustomButton::CustomButton(QWidget *parent) : QPushButton(parent)
  4. {
  5.  
  6. }
  7.  
  8.  
  9. void CustomButton::mousePressEvent(QMouseEvent* event)
  10. {
  11. // ToDo something
  12.  
  13. QWidget::mousePressEvent(event);
  14. }

Пайдаланушы виджетін ui пішініне қосыңыз

1) Виджет класының пішіні берілген, онда ештеңе жоқ

2) Оған стандартты QPushButton түймешігін қосыңыз

3) Тінтуірдің оң жақ түймешігімен контекстік мәзірге қоңырау шалыңыз және «Түрлендіру ...» түймесін басыңыз.

4) Ашылған диалогтық терезеде түрлендірілген класстың атын және тақырып файлының атын енгізіңіз. Біздің жағдайда бұл болады:

  • сынып атауы CustomButton
  • CustomButton.h тақырып файлы

Және диалогтық терезеде қосу түймесін басыңыз

5) Түрлендірілген классты таңдап, түрлендіру түймесін басыңыз

Осы тақырып бойынша ұсынылатын мақалалар

Мақала бойынша сұралады0сұрақтар(лар)

3

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

АК
  • Шілде 9, 2018, 4:32 Т.Қ.

Благодарю, а я решил весь GUI в коде писать из-за того, что года два назад не нашел ответ на этот вопрос :) Плохо искал :C

Наверное, поэтому некоторые программисты недолюбливают Qt Designer. Приходится тратить дополнительно силы на его изучение, а иногда некотроые вещи запрятаны очень глубоко в нём.

Пікірлер

Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
Кіріңіз немесе Тіркеліңіз