PyQt4를 사용하여 앱을 만들고 있습니다. Qt Designer로 두 개의 인터페이스를 만들었습니다. 버튼을 누르면 한 레이아웃과 다른 레이아웃 사이를 전환하고 싶습니다.PyQt4 : Qt 디자이너가 만든 레이아웃 전환
내 코드의 샘플은 다음과 같습니다
from PyQt4 import QtGui, uic
form_class = uic.loadUiType("sample.ui")[0]
form_class2 = uic.loadUiType("sample2.ui")[0]
class SecondLayout(form_class2, QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
form_class2.setupUi(self)
class MainWindow(form_class, QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.setupUi(self)
self.btn.clicked.connect(self.open_new_window)
def open_new_window(self):
self.Window = SecondLayout()
# here I would like to switch the layout with a layout of self.Window
app = QtGui.QApplication(sys.argv)
myWindow = MainWindow(None)
myWindow.show()
app.exec_()
내가 검색 약 QStackedLayout
을 읽는 많은 일을했지만, Qt는 디자이너에서 만든 레이아웃과 함께 작동하도록 얻을 수 없었다.
내 질문은 어떻게 하나의 메인 윈도우를 가질 수 있고 중앙 위젯을 전환 할 수 있지만 그것은 별도의 메뉴에 대해 작동하는지 모르겠습니다. Qt Designer에서 모든 메뉴와 위젯, 상태 표시 줄 등을 두 개의 서로 다른 프로젝트 (두 개의 메인 윈도우)로 정의 했으므로 메인 윈도우 중 하나에 메인 프로그램을 가지고 싶습니다. 그리고 나서 어느 시점에서 다음과 같은 인스턴스를 만듭니다. 두 번째 주 창 및 레이아웃과 모든 위젯, 메뉴, 텍스트 편집 등을 전환합니다. setCentralWidget
을 사용해 보았지만 나에게 도움이되지 못했습니다.
누군가 나에게이 작업을 수행하는 방법을 설명해 주시겠습니까?
귀하의 질문은 매우 명확하지 않다 :
는 여기에 한 가지 방법을 보여주는 간단한 데모입니다. 두 개의 기본 창 사이를 전환하거나 하나의 기본 창을 가지고 중앙 창 부품을 변경 하시겠습니까? 공유 메뉴, 상태 표시 줄, 도크 위젯 등을 원하십니까? 아니면 각 창에서 메뉴를 별도로 정의합니까? – ekhumoro
편집에서 질문을 더 잘 설명했습니다. –