Qt4 中的信号和槽

Posted

技术标签:

【中文标题】Qt4 中的信号和槽【英文标题】:Signals and Slots in Qt4 【发布时间】:2015-01-05 14:19:51 【问题描述】:

我正在尝试在 Qt4 中创建一个信号和插槽,但我对 Qt 还很陌生。根据我在 Qt5 中的理解,它只是自动创建的,而在 Qt4 中似乎并非如此。当用户单击 UI 的菜单栏中的选项时,我正在尝试创建一个操作。= 我看到屏幕底部有一个 Signal/Slot 编辑器,带有选项“Sender”, “信号”、“接收器”和“插槽”。我不完全确定如何使用此功能。任何帮助表示赞赏。

【问题讨论】:

你读过the documentation about signals and slots in Qt4? 【参考方案1】:

基本上你需要连接你的信号和插槽

connect(ui->button1, SIGNAL(clicked()), this, SLOT(yourSlot()));

在这个链接中有一个关于信号和槽的很好的例子:signals and slots in qt。

【讨论】:

【参考方案2】:

你好像误会了。

Qt 5 的不同之处在于它提供了新的语法来建立连接。

当你不指定连接类型时,连接是“自动的”,即直接、排队等,默认是自动的,这使得Qt检查对象的线程所有权并选择合适的连接类型。

连接必须在代码中显式创建,或者使用 UI 编辑器进行,虽然后者在某些情况下可能会为您节省一些输入,但通常您最终创建的大多数连接都是在代码中显式创建的,因此您最好学习如何去做,因为 UI 编辑器只能在少数情况下为您提供帮助。我并没有真正使用 UI 编辑器进行连接,并且在几年前尝试过一次或两次,但我认为限制是您只能在 UI 元素和小部件的信号和插槽之间建立连接。

考虑到信号和插槽连接不仅仅是 UI 的东西,它是 Qt 的核心原则,而 UI 只是它的众多用途之一。

【讨论】:

以上是关于Qt4 中的信号和槽的主要内容,如果未能解决你的问题,请参考以下文章

Qt 信号槽

Qt 6.x中的信号和槽介绍及示例

Qt 6.x中的信号和槽介绍及示例

QT学习之信号和槽

QThread 中的 Qt 信号和槽

PyQt 中的信号和槽