我做了從QLabel
繼承的類。這個班也有公共插槽,應該改變標籤標題。我「呼叫」這個SLOT與clicked()
信號的按鈕。 當我按下按鈕時沒有發生任何事情。繼承自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();
}
我應該怎麼做來改變插槽的標題?
作爲一般規則,不要在main.cpp中聲明'QObject'派生類,或者如果可能的話在任何cpp中聲明,這樣你就必須手動包含moc文件。 – dtech