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_()
  • 相关阅读:
    黑松白鹿
    跨越
    第三年
    Lua windows环境搭建
    Iron man
    水果沙拉
    六周岁
    sqlserver数据库附加报错5120
    [BeiJing2006]狼抓兔子 平面图最小割
    BZOJ2118: 墨墨的等式 思维建图
  • 原文地址:https://www.cnblogs.com/findz/p/12980142.html
Copyright © 2011-2022 走看看