PyQt5 자습서 시작

개시하다
이번에는 창 내 컨테이너에서 여러 부품을 갖춘 MDI 시연이 실행됐다.자원을 줄이기 위해 내부에서 만들어졌다고 하는데 개념은 상세히 보기 어려우니 참고 사이트를 보세요.
데모
multi_document.py
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class MainWindow(QMainWindow):
   count = 0

   def __init__(self, parent = None):
      super(MainWindow, self).__init__(parent)
      self.mdi = QMdiArea()
      self.setCentralWidget(self.mdi)
      bar = self.menuBar()

      file = bar.addMenu("File")
      file.addAction("New")
      file.addAction("cascade")
      file.addAction("Tiled")
      file.triggered[QAction].connect(self.windowaction)
      self.setWindowTitle("MDI demo")

   def windowaction(self, q):
      print ("triggered")

      if q.text() == "New":
         MainWindow.count = MainWindow.count+1
         sub = QMdiSubWindow()
         sub.setWidget(QTextEdit())
         sub.setWindowTitle("subwindow"+str(MainWindow.count))
         self.mdi.addSubWindow(sub)
         sub.show()

      if q.text() == "cascade":
         self.mdi.cascadeSubWindows()

      if q.text() == "Tiled":
         self.mdi.tileSubWindows()

def main():
   app = QApplication(sys.argv)
   ex = MainWindow()
   ex.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   main()
창을 추가하거나 정렬 단추를 누르면 창의 문서 창을 추가하거나 배열할 수 있습니다.(동작이 좀 질질 끄는 것 같은데...)
Screenshot from 2021-12-02 12-53-03.png

참고 자료

좋은 웹페이지 즐겨찾기