其他分享
首页 > 其他分享> > PyQt5 界面设计和业务处理分离

PyQt5 界面设计和业务处理分离

作者:互联网

打开designer在界面上放置了一些控件,保存界面为mainUi.ui,将mainwin.ui转换为Ui_mainwin.py 

pyuic5 -o  mainwin.ui  ui_mainwin.py

ui_mainwin.py代码都是自动生成的,大家可以不需要动,在生成的文件中有一个Ui_MainWindow类。新的py文件main.py,代码如下:#coding = utf-8
import sysfrom PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialogfrom Ui_login import Ui_MainWindow
class MyWin(QMainWindow, Ui_MainWindow):    '''    从QMainWindow, Ui_MainWindow继承,实现界面设计和业务实现的解耦    '''    def __init__(self, parent=None):        super(MyWin, self).__init__(parent)        self.setupUi(self)        self.__setting()        def __setting(self):        '''        增加自定义配置        '''        self.setWindowTitle("远程维护工具")        self.resize(800, 550)        self.splitter.setStretchFactor(0, 1)        self.splitter.setStretchFactor(1, 3)        self.splitter.setStretchFactor(2, 2)        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_())

 

标签:__,界面设计,splitter,self,分离,mainwin,PyQt5,Ui,def
来源: https://www.cnblogs.com/bongem/p/11813877.html