QAction是一个特殊的GUI相关类,可以连接到插槽吗?

时间:2013-11-14 14:21:38

标签: qt

我想知道是否有人可以为我澄清以下内容。我即将参加与Qt相关的测试,样本问题相当模糊。其中一个问题如下:

QAction是Qt中一个特殊的GUI相关类。关于QAction实例,我们可以 正确地说:

  • 一个。 QAction istances相当于插槽。
  • 湾QAction实例可以连接到插槽。
  • ℃。 QAction实例自动触发GUI事件。

我认为QAction实际上可以连接到插槽吗? B是正确答案吗?

1 个答案:

答案 0 :(得分:2)

QAction只是一个班级。当涉及信号和插槽时,它的行为与其他QObject类完全相同。所有“a”,“b”和“c”语句都是错误的。 QAction实例不是插槽,无法连接到插槽。 “连接”仅在实例的信号和插槽之间定义,而不是实例本身。事实是QAction提供了可以连接到插槽的triggered信号。

似乎您可能会对slots auto-connection感到困惑。您可以创建名为on_<action_name>_triggered的插槽,它将自动连接到相应的操作。但是这个特性适用于任何QObject派生类,而不仅仅是QAction。

很难理解“GUI事件”的含义。 QAction不是小部件。它不直接运行GUI。任何GUI事件都由使用的小部件(例如QMenu)处理。另请注意,事件不是信号。当您使用QAction时,通常不需要考虑事件。