在Qt中,我有一个菜单栏,看起来是这样的:如何在单击菜单项时调用函数?
|File|
+-------------------+
|Do Something |
|Do Something Else |
+-------------------+
我有一个函数doSomething
,我想被调用时,在文件菜单中的Do Something
用户点击,和功能doSomethingElse
那我同样希望在用户点击该菜单项时被调用。我怎么做到这一点?
在Qt中,我有一个菜单栏,看起来是这样的:如何在单击菜单项时调用函数?
|File|
+-------------------+
|Do Something |
|Do Something Else |
+-------------------+
我有一个函数doSomething
,我想被调用时,在文件菜单中的Do Something
用户点击,和功能doSomethingElse
那我同样希望在用户点击该菜单项时被调用。我怎么做到这一点?
一般来说,你的菜单项是QAction
s。将QAction信号triggered()
与您要调用的doSomething()
相连。
This这是如何工作的一个非常全面的描述。但address book tutorial的this section是一个很好的快速解释。
使您的功能成为一个插槽并将菜单操作连接到插槽。
如果函数不是任何类的一部分,有没有办法做到这一点? – wrongusername 2010-12-14 20:33:50
我不这么认为。如果我记得正确,槽必须是具有Q_OBJECT宏的类的成员函数。 – jkerian 2010-12-15 00:50:21
从我的第一个链接“所有包含信号或插槽的类必须在其声明的顶部提到Q_OBJECT,它们还必须从QObject派生(直接或间接)”。 – jkerian 2010-12-15 00:52:27