在代码中连接信号和插槽并在 QtCreator“信号和插槽编辑器”窗口中设置它们有啥区别?

Posted

技术标签:

【中文标题】在代码中连接信号和插槽并在 QtCreator“信号和插槽编辑器”窗口中设置它们有啥区别?【英文标题】:What's the difference between connecting signals and slot in code and setting them in QtCreator "Signals and Slots Editor" window?在代码中连接信号和插槽并在 QtCreator“信号和插槽编辑器”窗口中设置它们有什么区别? 【发布时间】:2013-01-04 16:01:28 【问题描述】:

在你的c++代码中连接信号和槽和在QtCreator“信号和槽编辑器”窗口中设置它们有什么区别?

我在 QtCreator 窗口中看到,还有一个“信号和插槽编辑器”小部件和“动作编辑器”小部件,以便我可以添加和编辑。但是我应该什么时候使用它?还是我可以忽略它?请告诉我最好遵循的规则是什么。谢谢

【问题讨论】:

我两个都用。我的意思是我尝试在设计器中尽可能多地连接 .ui 文件,但是当我连接到外部类时,通常更容易输入我的 c++ 代码。 【参考方案1】:

在你的 c++ 中连接信号和插槽有什么区别 代码并在 QtCreator“信号和插槽编辑器”窗口中设置它们?

什么都没有。当您使用编辑器时,它会将数据写入您的 .ui 文件,然后用于使用 uic 预处理器创建 C++ 代码。

还有一个“信号和插槽编辑器”小部件和“动作编辑器” 小部件,以便我可以添加和编辑。但是我应该什么时候使用它?或者我可以 只是忽略它?请告诉我最好遵循的规则是什么。

没有“要遵循的规则”,这是个人喜好。我个人发现 Designer 是一个使用起来很生硬的工具,所以除了对话框,我很少使用它;而其他人则认为它很有帮助并尽可能多地使用它。

【讨论】:

嗯,再问一个问题,你是说真的不用qt设计师的帮助,只用源代码就可以设计出整个qt图形界面吗? 当然!设计者创建 XML(ui 文件),该文件由创建 C++ 代码的uic 解析,因此没有什么能阻止您(实际上很正常)手动编写所有内容。 【参考方案2】:

功能上没有区别。你可以使用任何更适合你的东西。但是,我建议保持一致,并尽可能坚持使用一种方法。这样可以更轻松地找到建立了哪些连接 - 尤其是在代码由其他人维护的情况下。

如果您经常将信号连接到非视觉对象,您可能会发现在源代码中保持所有连接更容易,但您的里程可能会非常大。

【讨论】:

以上是关于在代码中连接信号和插槽并在 QtCreator“信号和插槽编辑器”窗口中设置它们有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

Qt / Windows:在全局范围对象的构造函数中连接信号和插槽时崩溃

QT Creator 中的 Slot 信号,connect() 函数在哪里?

如何在 .ui 文件中手动将信号连接到插槽?

Qt4中的信号和插槽 - 不工作

将 Worker Thread 信号与 MainWindow 插槽连接时出错(Qt5)

Qt Pushbutton无法连接插槽