Python 为什么QStackedWidget子页面中的小部件btn1只能为QStackedWidget定义信号,而不能为QStackedWidget中的page:deviceTypeSelect定义信号?

Python 为什么QStackedWidget子页面中的小部件btn1只能为QStackedWidget定义信号,而不能为QStackedWidget中的page:deviceTypeSelect定义信号?,python,pyqt,qstackedwidget,Python,Pyqt,Qstackedwidget,我想使用btn1向deviceTypeSelect的插槽函数发送信号,但btn1只能与QStackedWidget关联。 有两个问题 第一个是概念性的:设计师不能知道任何关于将在升级的小部件中实现的自定义插槽的信息,甚至不应该知道。与这些插槽的连接只能通过编程实现,这是有充分理由的:设计器不能“检查”(也不应该检查)将要升级的文件的源,而且完全可能升级一个小部件并使用不同的类和相同的设计文件 另一个问题是技术性的:多页小部件(如QStackedWidget或QTabWidget)的“页面”不能

我想使用btn1向deviceTypeSelect的插槽函数发送信号,但btn1只能与QStackedWidget关联。


有两个问题

第一个是概念性的:设计师不能知道任何关于将在升级的小部件中实现的自定义插槽的信息,甚至不应该知道。与这些插槽的连接只能通过编程实现,这是有充分理由的:设计器不能“检查”(也不应该检查)将要升级的文件的源,而且完全可能升级一个小部件并使用不同的类和相同的设计文件

另一个问题是技术性的:多页小部件(如QStackedWidget或QTabWidget)的“页面”不能用作Designer上的信号目标。我不知道这是一个缺失的功能还是出于设计(知道如何处理多页小部件插件,我不会打赌),但不幸的是,这确实是不可能的。

如果要连接到标准QWidget插槽(
setEnabled()
等),请在页面上设置一个虚拟框布局,并在其中添加另一个QWidget,但如果使用自定义插槽,如前所述,则必须从代码手动连接这些插槽。

什么插槽功能?deviceTypeSelect中的自定义插槽方法,我将升级deviceTypeSelect。您将要这样做,但您没有,这就是为什么您无法在Qt Designer中找到该插槽的原因。请提供仅可使用现有类的预定义插槽的列表。Qt设计器无法知道将要升级的小部件中有哪些插槽,怎么可能呢?!我做了升级,结果还是一样。这个演示不容易用代码描述,但图片更好。谢谢评论,所以我只能升级QStackedWidget,然后自定义其中的插槽以关联btn1的信号。这取决于你,但由于自定义插槽只能通过编程方式连接,所以没有太大区别,这取决于插槽将要做什么:如果它只在该页面上做一些事情,升级该页面就足够了,但是如果它的交互在堆叠小部件的公共范围内,则升级该页面。