zoukankan      html  css  js  c++  java
  • 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 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_())
  • 相关阅读:
    必须使用"角色管理工具"安装或配置microsoft.net framework 3.5
    RAC和ASM环境下修改控制文件control file
    Spring Boot热部署(springloader)
    Spring Boot返回json数据及完美使用FastJson解析Json数据
    Windwos配置Maven环境变量
    Spring Boot之HelloWorld
    查询SQLSERVER执行过的SQL记录
    《老妈语录》 读后感
    MySql安装
    MyEclipse中常用的快捷键大全
  • 原文地址:https://www.cnblogs.com/bongem/p/11813877.html
Copyright © 2011-2022 走看看