我想讓按鈕在點擊後繼續按下。所以我做了一個插槽make_pushed,我試圖用於這個目的。點擊的按鈕由QObject :: sender()方法標識。但由於不起作用,所以出現了問題。QObject :: sender()在插槽中無法正常工作
QPushButton * size=new QPushButton("size",this);
connect(size, SIGNAL(clicked()), this, SLOT(make_pushed()));
void Window4::make_pushed()
{
QObject* sender = this->sender();
QPushButton* button = qobject_cast<QPushButton*>(sender);
button->setDown(true);
button->setText("Yep");
}
class Window4 : public QWidget
{
public:
Window4(QWidget * parent=0);
private slots:
void make_pushed();
};
有一個在應用程序輸出的錯誤「的QObject ::連接:在沒有這樣的插槽QWidget的:: make_pushed()」,雖然一切編譯和出現的窗口。問題是插槽顯然沒有找到,雖然它在同一個cpp文件和標題中。因此,當點擊時,這個botton neigher改變它的文本,也不會被推送。
什麼不起作用?你在期待什麼?你看見什麼了? – user3528438
什麼是Windows4?如何在頭中聲明'make_pushed'?你做過'Q_OBJECTS'嗎?你做了'Q_SLOTS'嗎?哪個QT版本? – user3528438
編輯帖子 – parsecer