【发布时间】:2017-11-18 14:26:01
【问题描述】:
我在button.h有这门课:
class Buttons : public QObject
{
Q_OBJECT
public:
Buttons();
QVector<QPushButton*> buttons;
public slots:
void getBtnInfo();
};
在mainwindow.cpp 中,我是这样连接的:
Buttons mButtons;
for(int i = 0; i < mButtons.buttons.size(); i++) {
mButtons.buttons[i] = new QPushButton(mCentralWidget);
...
connect(mButtons.buttons[i], SIGNAL(clicked(bool)), &mButtons, SLOT(getBtnInfo()));
}
它运行没有任何错误;但getBtnInfo() slot 似乎什么也没做。因为我只是尝试在此插槽中进行调试,但无法正常工作。
但是如果我在mainwindow.h 中声明getBtnInfo() slot 并像这样连接:
connect(mButtons.buttons[i], SIGNAL(clicked(bool)), this, SLOT(getBtnInfo()));
然后就可以了。
我想知道为什么?以及如何解决上述问题?
谢谢。
【问题讨论】:
标签: c++ qt qt5 qt-signals qt-slot