Customplaceholder не имеет соответствующей функции для вызова метки QT - PullRequest
0 голосов
/ 23 января 2019

У меня проблема с моим проектом QT. Я хочу создать сенсорный Qlabel, поэтому я создал местозаполнитель в графическом дизайнере и сослался на мой «список наблюдения», который происходит от QLabel. Когда я сейчас запускаю свое приложение, я получаю сообщение об ошибке «Нет подходящей функции для вызова WatchListLabel :: WatchListLabel (QGroupBox * &)» name1 = новый WatchListLabel (groupBox_3);

Мои ярлыки в групповой коробке, это влияет на мой код? почему он не может найти подходящую функцию? ^

 #include<QLabel>

  class WatchListLabel: public QLabel
{
   Q_OBJECT
  private: 
     void mousePressEvent(QMouseEvent * event) override;
 public:
    WatchListLabel();
 };

watchlistlabel.cpp

  #include "watchlistlabel.h"

 void WatchListLabel::mousePressEvent(QMouseEvent *event)
 {



    }

  WatchListLabel::WatchListLabel()
 {

 }

QtDesigner

1 Ответ

0 голосов
/ 23 января 2019

Вам не хватает конструктора, который принимает родительский виджет.Общий совет против этого - создавать новые подклассы QObject с помощью мастера создания классов Qt Creator, все получится правильно.Но чтобы решить проблему с этим классом, попробуйте заменить конструктор по умолчанию следующим конструктором:

Объявление в .h:

explicit WatchListLabel(QWidget *parent = nullptr);

Определение в .cpp:

WatchListLabel::WatchListLabel(QWidget *parent)
    : QLabel(parent) 
    //, any other member variable initializations
{
    // any constructor code if needed
}
...