【问题标题】:PyQt : Checking the current widgetPyQt:检查当前小部件
【发布时间】: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() 方法获取页面名称?

【问题讨论】:

    标签: python qt pyqt


    【解决方案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() 方法也可能有用,因为它返回当前小部件的索引,而不是小部件本身。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 2014-03-02
      • 2017-10-31
      相关资源
      最近更新 更多