如何在 .ui 文件中手动将信号连接到插槽?
Posted
技术标签:
【中文标题】如何在 .ui 文件中手动将信号连接到插槽?【英文标题】:How to connect signals to slots manually in .ui files? 【发布时间】:2012-01-27 12:02:51 【问题描述】:由于我使用 SCons 而不是 qmake,我没有项目 (.pro) 文件,因此 Qt Creator (我只用它来制作 GUI)拒绝将信号连接到插槽。我想手动编辑 .ui 文件以添加适当的连接。我应该改变什么?
【问题讨论】:
【参考方案1】:使用uic
按照Karlson说的编译ui文件。例如:
uic yourinterface.ui -o uicompiled.h
这样您可以从 ui 文件生成完整的类,而不是将它们插入到您的代码库中
【讨论】:
如果我将 .ui 转换为 .h 并在 .h 中连接信号,我将无法编辑 .ui 而无需再次重新连接信号,所以这不是我想要的答案:( 通常您不会编辑其中任何一个文件,除非您建立标准化连接,例如close()
【参考方案2】:
qmake
会将.ui
文件转换为.pro
,然后再转换为make 文件。但是您仍然需要运行uic
来编译您的.ui
文件以生成元对象以允许发生信号槽连接。类定义的标题也可能会有所帮助。
通常,当您对ui
进行子类化时,您将使用connect
函数将信号连接到子类中的自定义插槽。
【讨论】:
什么意思,qmake
会将.ui
文件转换成.pro
?
@Septagram 如果您查看.ui
文件,它基本上是xml
文件。所以qmake
将获取该文件。将其转换为.pro
,然后将.pro
转换为makefile
,具体取决于您为其提供的选项uic
然后将其转换为.h
。以上是关于如何在 .ui 文件中手动将信号连接到插槽?的主要内容,如果未能解决你的问题,请参考以下文章