我想知道它是否可以通过编码发出一些特定信号。例如,我想发出另一个按钮的点击事件而用户实际上没有点击该按钮..我可以这样做吗?
答案 0 :(得分:5)
您可以调用其他按钮的click功能。它会发出点击的信号。
答案 1 :(得分:3)
而不是自己发出信号并将其连接到插槽,为什么你不能直接调用插槽?插槽就像其他C ++函数一样,你可以直接调用它。我没有看到您发出预定义信号的任何原因(如clicked()
)。 直接致电您的广告。
答案 2 :(得分:0)
信号在内部实现为C ++保护的成员函数,因此我建议不要这样做。 (它们在Qt 5中是公开的,但它仍然不建议作为一般解决方案。)
答案 3 :(得分:0)
Qt,通过moc,实现emit关键字,允许你通过编码发出信号。
如果您使用的Class没有提供发出某些信号的方法,您可以对其进行子类化,并实现一个自己完成的功能。但我必须说,我从来没有为“正常”信号做过这件事。只有当我在某个类扩展中定义自己的信号时才这样做。
答案 4 :(得分:0)
发出你刚写的信号
发出signalName(参数列表);
#include <QObject>
class myClass : public QObject
{
Q_OBJECT
public:
myClass (QObject *parent = 0) : QObject(parent) { }
void foo();
signals:
void mySignal(int param);
};
void myClass::foo() { emit mySignal(5); }
在http://doc.qt.io/qt-4.8/signalsandslots.html
了解详情您还可以将信号连接到另一个信号,这样您就可以将mysignal连接到按键点击信号,当您的信号发出时,点击的信号也会被发光 http://doc.qt.io/qt-4.8/qobject.html#connect
答案 5 :(得分:0)
如果您为按钮设置操作,您也可以简单地调用要触发的操作。只需使用action_of_the_button->trigger();
!