zoukankan      html  css  js  c++  java
  • qt动态加载UI文件

    from PySide2.QtWidgets import QApplication, QMessageBox
    from PySide2.QtUiTools import QUiLoader
    from PySide2.QtCore import QFile
    
    class Stats:
    
        def __init__(self):
            # 从文件中加载UI定义
            qfile_stats =QFile("stats.ui")
            qfile_stats.open(QFile.ReadOnly)
            qfile_stats.close()
            # 从 UI 定义中动态 创建一个相应的窗口对象
            # 注意:里面的控件对象也成为窗口对象的属性了
            # 比如 self.ui.button , self.ui.textEdit
            self.ui = QUiLoader().load(qfile_stats)
            self.ui.button.clicked.connect(self.handleCalc)
    
        def handleCalc(self):
            info = self.ui.textEdit.toPlainText()
    
            salary_above_20k = ''
            salary_below_20k = ''
            for line in info.splitlines():
                if not line.strip():
                    continue
                parts = line.split(' ')
    
                parts = [p for p in parts if p]
                name,salary,age = parts
                if int(salary) >= 20000:
                    salary_above_20k += name + '
    '
                else:
                    salary_below_20k += name + '
    '
    
            QMessageBox.about(self.ui,
                        '统计结果',
                        f'''薪资20000 以上的有:
    {salary_above_20k}
                        
    薪资20000 以下的有:
    {salary_below_20k}'''
                        )
    
    app = QApplication([])
    stats = Stats()
    stats.ui.show()
    app.exec_()
  • 相关阅读:
    linux分区-df
    day34 协程
    day33 GIL锁 线程队列 线程池
    day32 线程
    day31 管道 进程池 数据共享
    day30 锁 队列
    day29 进程
    day28 socketserver
    day27 粘包及粘包的解决方案
    day26 网络通讯的整个流程
  • 原文地址:https://www.cnblogs.com/findz/p/12980142.html
Copyright © 2011-2022 走看看