PyQt:检查当前小部件
Posted
技术标签:
【中文标题】PyQt:检查当前小部件【英文标题】:PyQt : Checking the current widget 【发布时间】:2022-01-13 07:38:12 【问题描述】:我正在使用 QStackwidget,我想检查我是否在小部件 A 或 B 中。在 PyQt 文档中,它说我需要 currentwidget() 方法,该方法将返回当前小部件/页面。这是此方法在 python 中的输出:
print(self.ui.stackedWidget.currentWidget())
控制台显示如下:
<PyQt5.QtWidgets.QWidget object at 0x0000203A1009160>
所以它显示了我当前所在的小部件的地址。
但我要实现的是以下
if self.ui.stackedWidget.currentWidget() == page A:
#action1
elif self.ui.stackedWidget.currentWidget() == page B:
#action2
and so on ...
有没有办法通过 currentWidget() 方法获取页面名称?
【问题讨论】:
【参考方案1】:QStackedWidget.currentWidget()
为您提供小部件本身,因此您可以直接比较它:
firstPageWidget = QWidget()
secondPageWidget = QWidget()
thirdPageWidget = QWidget()
stackedWidget = QStackedWidget()
stackedWidget.addWidget(firstPageWidget)
stackedWidget.addWidget(secondPageWidget)
stackedWidget.addWidget(thirdPageWidget)
currentWidget = stackedWidget.currentWidget()
if currentWidget == firstPageWidget:
print("In first page")
elif currentWidget == secondPageWidget:
print("In second page")
elif currentWidget == thirdPageWidget:
print("In third page")
QStackedWidget::currentIndex() 方法也可能有用,因为它返回当前小部件的索引,而不是小部件本身。
【讨论】:
以上是关于PyQt:检查当前小部件的主要内容,如果未能解决你的问题,请参考以下文章
PyQt5 - 在表格小部件的列中创建一个检查项,即使行数与旋转框不同
PyQt 小部件 connect() 和 disconnect()
将 PySide/PyQt 小部件嵌入到 Qt/C++ 应用程序中