PyQt5 界面設計和業務處理分離

打開designer在界面上放置了一些控件,保存界面爲mainUi.ui,將mainwin.ui轉換爲Ui_mainwin.py
 

pyuic5 -o  mainwin.ui  ui_mainwin.pyapp

ui_mainwin.py代碼都是自動生成的,你們能夠不須要動,在生成的文件中有一個Ui_MainWindow類。
新的py文件main.py,代碼以下:
#coding = utf-8

import sys
from PyQt5.QtWidgets  import QApplication, QMainWindow, QFileDialog
from Ui_login  import Ui_MainWindow

class  MyWin( QMainWindowUi_MainWindow):
     '''
    從QMainWindow, Ui_MainWindow繼承,實現界面設計和業務實現的解耦
    '''
     def  __init__( selfparent= None):
         super(MyWin,  self). __init__(parent)
         self.setupUi( self)
         self.__setting()
    
     def  __setting( self):
         '''
        增長自定義配置
        '''
         self.setWindowTitle( "遠程維護工具")
         self.resize( 800550)
         self.splitter.setStretchFactor( 01)
         self.splitter.setStretchFactor( 13)
         self.splitter.setStretchFactor( 22)
         self.splitter.setMaximumWidth( 1500)

         #增長信號處理
         self.pushButton.clicked.connect( self.slot1)
         self.actionClose.triggered.connect( self.close)
         self.actionOpen.triggered.connect( self.on_open)
         self.actionSave.triggered.connect( self.on_save)

     #自定義信號處理函數
     def  slot1( self):
         print( "點擊。。。")


     def  on_save( self):
        FullFileName, _ = QFileDialog.getSaveFileName( self'文件另存爲'r './''TXT (*.txt)')
        set_text =  self.txt_view.toPlainText()
         with  open(FullFileName,  'wt'as f:
             print(set_text,  file=f)


     def  on_open( self):
        txtstr =  ""
        FullFileName, _ = QFileDialog.getOpenFileName( self'打開'r './''TXT (*.txt)')
         with  open(FullFileName,  'rt'as f:
            lines = f.readlines()
             for line  in lines:
                txtstr = txtstr+line
                 self.txt_view.setText(txtstr)

if  __name__ ==  "__main__":
    app = QApplication(sys.argv)
    w = MyWin()
    w.show()
    sys.exit(app.exec_())
相關文章
相關標籤/搜索