gpt4 book ai didi

python - 如何在 Python PyQt4 中设置现有 MainWidnow 的中心小部件?

转载 作者:太空宇宙 更新时间:2023-11-04 01:20:30 29 4
gpt4 key购买 nike

我有一个由3 个类 组成的代码。 widget1widget2 类继承自QFrame 类,由多个lineeditcombobox 组成> 供用户输入信息。

所以,我想要的是:当程序启动时,它会首先调出 QMainWindow 类,并将 widget1 设置为 central widget

widget1 有一个Check 函数,它连接到它上面的一个按钮。检查按钮将根据用户在页面上输入的数据检查条件是否为真。

如果条件为真。我希望 widget2 将其设置为 MainWindowcentral wiget 以替换现有的 central widget widget1.

我的问题是,如何将 widget2 设置为现有 MainWidnow 类实例的中央小部件?

这是我的代码格式:

class widget1(QtGui.QFrame):
def __init__(self,parent = None):
......
......

def Check(self):
if (condition):
#set widget2 as central widget on MainWindow

class widget2(QtGui.QFrame):
def __int__(self,parent = None):
.....
.....

class MainWindow(QtGui.QMainWindow):
def __init__(self,parent = None):
QtGui.QMainWindow.__init__(self,parent)
....
mywidgetone = widget1()
self.setCentralWidget(mywidgetone)

if __name__ == '__main__':
app = QtGui.QApplicaiton(sys.argv)
main = MainWindow()
main.show()
app.exec_()

最佳答案

我将为 MainWindow 执行以下操作:

class MainWindow(QtGui.QMainWindow):
def __init__(self,parent = None):
QtGui.QMainWindow.__init__(self,parent)
....
self.setMyCentral(widget1)

def setMyCentral(self, widgetClass):
mywidget = widgetClass(self)
self.setCentralWidget(mywidget)

然后,在 widget1 中:

def Check(self):
if (condition):
self.parent().setMyCentral(widget2)

现在,请遵循约定:类以大写字母开头(Widget1Widget2),方法则不用(check 代替) 检查)

关于python - 如何在 Python PyQt4 中设置现有 MainWidnow 的中心小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21592570/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com