发信号给它自己的实例并不起作用

时间:2016-08-05 18:09:06

标签: c++ qt5 signals-slots qpushbutton

我将来自QPushButton的clicked(bool)事件连接到我自己的Widget的私有插槽mySlot()。但是从不调用插槽(我在mySlot()中放置了一个断点)。我使用的是c ++和Qt5。 我写了我的代码的最小版本:

MyLayout.h

class MyLayout : public QWidget
{
Q_OBJECT
public:
    MyLayout(QWidget* parent = NULL);
private:
    QPushButton *next;
private slots:
    void mySlot();
}

MyLayout.cpp

MyLayout::MyLayout(QWidget* parent) : QWidget(parent)
{
    next = new QPushButton("Next Step");
    QObject::connect(next, SIGNAL(clicked(bool)), this, SLOT(mySlot()));
}
void MyLayout::mySlot() { /* do something */ }

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您创建了一个无父按钮,但从未显示过。首先给它父(this),然后它与你的小部件一起显示:

next = new QPushButton("Next Step", this);

然后了解如何使用layouts