2014-03-26 6 views
2

python에서 pyqt4를 사용하여 텍스트 편집기를 작성하고 새로운 (메뉴 항목)을 클릭 할 때마다 QTextEdit을 포함해야하는 mdi 영역에 하위 창을 추가하려고합니다. , 나는 이것이 어떻게 성취 될 수 있는지 알고 싶다.pyqt4에 QtextEdit을 포함하는 하위 창을 추가하는 방법

class Ui_MainWindow(object): 
def setupUi(self, MainWindow): 
    MainWindow.setObjectName(_fromUtf8("MainWindow")) 
    MainWindow.resize(800, 600) 
    self.centralwidget = QtGui.QWidget(MainWindow) 
    self.centralwidget.setObjectName(_fromUtf8("centralwidget")) 
    self.gridLayout = QtGui.QGridLayout(self.centralwidget) 
    self.gridLayout.setObjectName(_fromUtf8("gridLayout")) 
    self.mdiArea = QtGui.QMdiArea(self.centralwidget) 
    self.mdiArea.setObjectName(_fromUtf8("mdiArea")) 
    self.gridLayout.addWidget(self.mdiArea, 0, 0, 1, 1) 
    MainWindow.setCentralWidget(self.centralwidget) 
    self.menubar = QtGui.QMenuBar(MainWindow) 
    self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21)) 
    self.menubar.setObjectName(_fromUtf8("menubar")) 
    self.menuFile = QtGui.QMenu(self.menubar) 
    self.menuFile.setObjectName(_fromUtf8("menuFile")) 
    MainWindow.setMenuBar(self.menubar) 
    self.statusbar = QtGui.QStatusBar(MainWindow) 
    self.statusbar.setObjectName(_fromUtf8("statusbar")) 
    MainWindow.setStatusBar(self.statusbar) 
    self.actionNew = QtGui.QAction(MainWindow) 
    self.actionNew.setObjectName(_fromUtf8("actionNew")) 
    self.actionExit = QtGui.QAction(MainWindow) 
    self.actionExit.setObjectName(_fromUtf8("actionExit")) 
    self.menuFile.addAction(self.actionNew) 
    self.menuFile.addAction(self.actionExit) 
    self.menubar.addAction(self.menuFile.menuAction()) 
    # 
    self.Doc_1 = QtGui.QWidget() 
    self.Doc_1.setObjectName(_fromUtf8("Doc_1")) 
    self.gridLayout_2 = QtGui.QGridLayout(self.Doc_1) 
    self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2")) 
    self.textEdit = QtGui.QTextEdit(self.Doc_1) 
    self.textEdit.setMinimumSize(QtCore.QSize(100, 200)) 
    self.textEdit.setMaximumSize(QtCore.QSize(741, 16777215)) 
    self.textEdit.setObjectName(_fromUtf8("textEdit")) 
    self.gridLayout_2.addWidget(self.textEdit, 0, 0, 1, 1) 
    # 

    self.retranslateUi(MainWindow) 
    QtCore.QObject.connect(self.actionExit, QtCore.SIGNAL(_fromUtf8("triggered()")), MainWindow.close) 
    QtCore.QObject.connect(self.actionNew, QtCore.SIGNAL(_fromUtf8("triggered()")), self.opennew) 
    QtCore.QMetaObject.connectSlotsByName(MainWindow) 
def opennew(self): 
    self.mdiArea.addSubWindow(Doc_1); 

def retranslateUi(self, MainWindow): 
    MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None)) 
    self.Doc_1.setWindowTitle(_translate("MainWindow", "Doc_1", None)) 
    self.menuFile.setTitle(_translate("MainWindow", "file", None)) 
    self.actionNew.setText(_translate("MainWindow", "new", None)) 
    self.actionNew.setShortcut(_translate("MainWindow", "Ctrl+N", None)) 
    self.actionExit.setText(_translate("MainWindow", "exit", None)) 
    self.actionExit.setShortcut(_translate("MainWindow", "Ctrl+X", None)) 
+0

안녕하세요. 안녕하세요. 당신이 시도한 것을 저희에게 알려주십시오. 그것은 우리가 당신을 도울 수 있도록 도와 줄 것입니다. – emh

+1

@emh 나는 내 질문을 편집 해 봤는데, 지금까지 시도한 것을 볼 수있다. – rock

답변

0
  1. 선생님, 당신은 QTextEdit의 목록을 가질 수 있으며, 향후, 그것은 에 자신의 컨트롤을 가지고 있고 당신이 필요로 뒤로.
  2. 다른 옵션은 TextEdit을 많이 사용하지 않고 문서 만 저장하는 것입니다. "New Doc"를 클릭 할 때마다 문서를 저장하고 현재 문서를 새 문서로 재설정합니다. 또한 자신에 의해 그것을 제어해야합니다.
  3. 구현 방법에는 여러 가지가 있지만, 실제로 필요한 것보다 더 잘 맞는 것을해야합니다. 너에게 몇 가지 아이디어가있어.

멋진 튜토리얼이 많이 있습니다.

Here은 정말 놀라운 것입니다. 처음부터 많이 도와 줬어.

관련 문제