私はQLabel
から継承したクラスを作成しました。このクラスには公開スロットがあり、ラベルのキャプションを変更する必要があります。私はclicked()
SIGNALボタンのでこれSLOT "コール"。 ボタンを押すと何も起こりませんでした。QLabelから継承したクラス。カスタムスロットが呼び出されないのはなぜですか?
#include <QApplication>
#include <QLabel>
#include <QPushButton>
class Label : public QLabel
{
public:
Label(QString a) : QLabel(a){}
public slots:
void change()
{
this->setNum(2);
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPushButton* button = new QPushButton("Button");
Label* lbl = new Label("Label");
button->show();
lbl->show();
QObject::connect(button, SIGNAL(clicked(bool)), lbl, SLOT(change()));
return a.exec();
}
キャプションをスロットから変更するにはどうすればよいですか?
、任意のcppに手動MOCファイルをインクルードする必要があり、このようにmain.cppにでたり、可能であれば 'QObject'派生クラスを宣言しないでください。 – dtech