我知道如何从信号所在的类内部调用信号:通过使用emit
。但是,如果我想从父对象外部调用它怎么办?
我想要这样做的原因是因为给定的 QPushButton 连接到一个插槽,该插槽选择使用 sender()
调用它的按钮。现在我想要调用该插槽的相同功能,但不是在手动单击按钮之后,而是从代码本身内部调用。通常我只是以编程方式调用插槽,但由于 sender()
的使用,这种方式是无效的:直接调用插槽不会给它按钮的 ID。
那么我如何“从外部”要求对象发出其信号之一?也就是说,如何让我的 QPushButton 从代码中发出 clicked()
信号,而不是通过用鼠标单击按钮?
最佳答案
您不能直接从父对象发出信号。
Only the class that defines a signal and its subclasses can emit the signal. (http://qt-project.org/doc/qt-4.8/signalsandslots.html#signals)
您可以在发出信号的 QPushButton emitClicked()
中定义一个方法。然后,您从代码中对 QPushButton 实例调用 emitClicked()
。
关于c++ - Qt中如何从外部调用一个信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28592583/