首页 > 解决方案 > 为什么QStackedWidget子页面中的widget btn1只能为QStackedWidget定义信号,而不能为QStackedWidget中的page: deviceTypeSelect定义信号?

问题描述

我想用btn1向deviceTypeSelect的slot函数发送信号,但是btn1只能和QStackedWidget关联。 在此处输入图像描述

在此处输入图像描述

标签: pythonpyqtqstackedwidget

解决方案


有两个问题。

第一个是概念性的:设计师对将在提升的小部件中实现的自定义插槽一无所知,甚至不应该知道。与这些插槽的连接只能以编程方式实现,这是有充分理由的:设计师不能“检查”(也不应该)被提升的文件的来源,而且完全有可能提升一个小部件并使用具有相同设计文件的不同类。

另一个问题是技术问题:像 QStackedWidget 或 QTabWidget 这样的多页小部件的“页面”不能用作 Designer 上的信号目标。我不知道这只是缺少的功能还是设计使然(知道如何处理多页小部件插件,我不会打赌),但不幸的是,这确实是不可能的。
如果您想连接到标准 QWidget 插槽(setEnabled()等),请在页面上设置一个虚拟盒装布局,并在其中添加另一个 QWidget,但如果您使用自定义插槽,如前所述,则必须从您的代码中手动连接。


推荐阅读