在代码中连接信号和插槽并在 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() 函数在哪里?