Windows 在PyQt中跟踪多个窗口的合理方法是什么?
我正在编写一个PyQt应用程序,它将具有多个窗口。现在,我感兴趣的是一次打开两个窗口中的一个(因此单击一个窗口中的按钮会切换到另一个窗口)。在PyQt应用程序中跟踪多个窗口的合理方法是什么?我最初的尝试(如下所示)本质上是将Windows 在PyQt中跟踪多个窗口的合理方法是什么?,windows,pyqt,data-members,Windows,Pyqt,Data Members,我正在编写一个PyQt应用程序,它将具有多个窗口。现在,我感兴趣的是一次打开两个窗口中的一个(因此单击一个窗口中的按钮会切换到另一个窗口)。在PyQt应用程序中跟踪多个窗口的合理方法是什么?我最初的尝试(如下所示)本质上是将QtGui.QWidget的实例存储在一个简单类的全局实例的数据成员中 我是PyQt的新手。有没有更好的办法 #!/usr/bin/env python import sys from PyQt4 import QtGui class Program(object):
QtGui.QWidget
的实例存储在一个简单类的全局实例的数据成员中
我是PyQt的新手。有没有更好的办法
#!/usr/bin/env python
import sys
from PyQt4 import QtGui
class Program(object):
def __init__(
self,
parent = None
):
self.interface = Interface1()
class Interface1(QtGui.QWidget):
def __init__(
self,
parent = None
):
super(Interface1, self).__init__(parent)
self.button1 = QtGui.QPushButton(self)
self.button1.setText("button")
self.button1.clicked.connect(self.clickedButton1)
self.layout = QtGui.QHBoxLayout(self)
self.layout.addWidget(self.button1)
self.setGeometry(0, 0, 350, 100)
self.setWindowTitle('interface 1')
self.show()
def clickedButton1(self):
self.close()
program.interface = Interface2()
class Interface2(QtGui.QWidget):
def __init__(
self,
parent = None
):
super(Interface2, self).__init__(parent)
self.button1 = QtGui.QPushButton(self)
self.button1.setText("button")
self.button1.clicked.connect(self.clickedButton1)
self.layout = QtGui.QHBoxLayout(self)
self.layout.addWidget(self.button1)
self.setGeometry(0, 0, 350, 100)
self.setWindowTitle('interface 2')
self.show()
def clickedButton1(self):
self.close()
program.interface = Interface1()
def main():
application = QtGui.QApplication(sys.argv)
application.setApplicationName('application')
global program
program = Program()
sys.exit(application.exec_())
if __name__ == "__main__":
main()
有一个单独的主窗口,带有一个可容纳不同界面的窗口。然后使用在接口之间切换
另外,尽量避免使用全局引用。如果希望GUI组件彼此通信,请使用信号和插槽。如果没有合适的内置设备,您可以轻松地安装。谢谢您的帮助。这似乎是解决这一问题的合理方法。