我将来自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 */ }
有什么想法吗?
答案 0 :(得分:0)
您创建了一个无父按钮,但从未显示过。首先给它父(this
),然后它与你的小部件一起显示:
next = new QPushButton("Next Step", this);
然后了解如何使用layouts。