问题描述
知道,我尝试使用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/