我想在程序开始时隐藏小部件

问题描述

知道,我尝试使用pyqt制作GUI。 我想在程序开始时隐藏一些小部件,并在选择组合框时显示。 可以在程序开始时隐藏一些小部件。但是,当我选择组合框时,不可能显示特定的小部件。您能给我解决这个问题的建议吗?

class MyForm(QtGui.QWidget):
def __init__(self):
    QtGui.QWidget.__init__(self)
    self.ui = Ui_MainWindow()
    self.ui.setupUi(self)
    self.ui.oneLayerWidget.setVisible(False)
    self.ui.twoLayerWidget.setVisible(False)
    self.ui.layTypeComboBox.clear()
    self.ui.layTypeComboBox.addItems(["Original Layer","Boolean Layer"])
    self.ui.layTypeComboBox.currentIndexChanged.connect(self.layTypeSelEvent)

def layTypeSelEvent(self):
    layType = str(self.ui.layTypeComboBox.currentText())
    if layType == "Original Layer":
        self.ui.twoLayerWidget.setVisible(False)
        self.ui.oneLayerWidget.setVisible(True)
    elif layType == "Boolean Layer":
        self.ui.oneLayerWidget.setVisible(False)
        self.ui.twoLayerWidget.setVisible(True)

解决方法

如果我正确理解您的要求,则希望这样的东西隐藏您的窗口小部件 self.ui.twoLayerWidget.hide()并显示您的窗口小部件 self.ui.twoLayerWidget.show()

它也类似于 setVisible ,请参见此link

或者也许您可以考虑使用stackedWidget,可以通过更改索引来更改要显示的小部件

self.ui.stackedWidget.setCurrentIndex(1)
,
 php -S 127.0.0.1:8000 -t public/