PyQt5主視窗動態載入Widget例項程式碼

pythontab發表於2018-02-07

PyQt是一個建立GUI應用程式的工具包。它是Python程式語言和Qt庫的成功融合。Qt庫是目前最強大的庫之一。PyQt是由Phil Thompson 開發。

我們透過Qt Designer設計兩個視窗,命名為主視窗(MainForm)和子視窗(ChildrenForm)。我們在主視窗的空白中央新增一個柵格佈局並命名為MaingridLayout,等會需要將ChildrenForm放進去。

編寫程式碼

from PyQt5 import QtWidgets 
from MainForm import Ui_MainForm 
from Children import Ui_Form 
 
from PyQt5.QtWidgets import QFileDialog 
 
class MainForm(QtWidgets.QMainWindow,Ui_MainForm): 
  def __init__(self): 
    super(MainForm,self).__init__() 
    self.setupUi(self) 
 
    self.child=ChildrenForm()             #self.child = children()生成子視窗例項self.child 
    self.fileOpen.triggered.connect(self.openMsg)   #選單的點選事件是triggered 
    self.fileClose.triggered.connect(self.close) 
    self.actionTst.triggered.connect(self.childShow)  #點選actionTst,子視窗就會顯示在主視窗的MaingridLayout中 
 
  def childShow(self): 
    self.MaingridLayout.addWidget(self.child)     #新增子視窗 
    self.child.show() 
  def openMsg(self): 
    file,ok=QFileDialog.getOpenFileName(self,"開啟","C:/","All Files (*);;Text Files (*.txt)") 
    self.statusbar.showMessage(file)          #在狀態列顯示檔案地址 
 
class ChildrenForm(QtWidgets.QWidget,Ui_Form): 
  def __init__(self): 
    super(ChildrenForm,self).__init__() 
    self.setupUi(self) 
 
if __name__=="__main__": 
  import sys 
 
  app=QtWidgets.QApplication(sys.argv) 
  myshow=MainForm() 
  myshow.show() 
  sys.exit(app.exec_())


以上就是本文關於PyQt5主視窗動態載入Widget例項程式碼的全部內容,希望對大家有所幫助。


相關文章