用 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 文件再导入明显更快。