向自己的实例发出信号不起作用



我将QPushButton中的点击(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 */ }

有什么想法吗?

您创建了一个无父按钮,但从未显示过它。首先给它一个父按钮(this(,这样它就会与您的小部件一起显示:

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

然后学习如何使用布局。

相关内容

  • 没有找到相关文章

最新更新