PyQt加载py文件与加载ui文件,哪个更快?

用 Qt Designer 做好界面后会生成一个 *.ui 文件,一般我们会先用 uic 命令将其转换成 *.py 文件。但其实 PyQt 还自带了一个 uic.loadUi() 方法,能够直接加载这个 *.ui 文件。到底哪种方法执行效率更高呢?

测试代码如下:

import importlib
from time import time
from PyQt5 import QtWidgets, uic

app = QtWidgets.QApplication([])

# 用来计时的函数
def csmtime(info):
    def rt(func):
        def wrapper():
            t = time()
            func()
            print(info, time() - t)        
        return wrapper    
    return rt

@csmtime('py')
def imp_py():
    for i in range(50):
        wdg = QtWidgets.QScrollArea()
        ui_main = importlib.import_module("ui_main")  #动态导入py文件
        ui_main.Ui_FormUnit().setupUi(wdg)

@csmtime('ui')
def imp_ui():
    for i in range(50):
        wdg = QtWidgets.QScrollArea()
        uic.loadUi('ui_main.ui', wdg)  #直接加载ui文件

imp_py()
imp_ui()

测试结果如下:

py 14.359683513641357
ui 22.69052290916443

🌼 结论:把 ui 文件先转换成 py 文件再导入明显更快。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容