本文实例为大家分享了PySide和PyQt加载ui文件的具体实现代码,供大家参考,具体内容如下
在用PySide或PyQt的时候,经常用到要将画好的ui文件导入到代码里使用,下面是两种调入的方法:
import PyQt4.uic from PyQt4 import QtCore, QtGui MainWindowForm, MainWindowBase = PyQt4.uic.loadUiType('ui/mainwindow.ui') class MainWindow(MainWindowBase, MainWindowForm): def __init__(self, parent = None): super(MainWindow, self).__init__(parent) # setup the ui self.setupUi(self) if ( __name__ == '__main__' ): app = None if ( not app ): app = QtGui.QApplication([]) window = MainWindow() window.show() if ( app ): app.exec_()
第二种:
import PyQt4.uic from PyQt4 import QtCore, QtGui class MainWindow(QtGui.QMainWindow): def __init__(self, parent = None): super(MainWindow, self).__init__(parent) # load the ui PyQt4.uic.loadUi('ui/mainwindow.ui', self) if ( __name__ == '__main__' ): app = None if ( not app ): app = QtGui.QApplication([]) window = MainWindow() window.show() if ( app ): app.exec_()
当然如果是用PySide的话,我们可以写个专门读取ui文件的方法,将baseclass和formclass返回出去,供后面UI的类继承。
# -*- coding: utf-8 -*- from PySide import QtGui import xml.etree.ElementTree as xml from cStringIO import StringIO def load_ui_file(ui_file, type='PySide'): if type == 'PySide': import pysideuic print pysideuic parsed = xml.parse(ui_file) widget_class = parsed.find('widget').get('class') form_class = parsed.find('class').text with open(ui_file, 'r') as f: o = StringIO() frame = {} pysideuic.compileUi(f, o, indent=0) pyc = compile(o.getvalue(), '<string>', 'exec') exec pyc in frame form_class = frame['Ui_%s' % form_class] base_class = getattr(QtGui, widget_class) return form_class, base_class elif type == 'PyQt4': import PyQt4.uic return PyQt4.uic.loadUiType(ui_file) if __name__ == "__main__": ui_file = 'test.ui' load_ui_file(ui_file)
这样Pyside和PyQt就可以调用.ui文件了,而且这两种调用方法的性能和占用的内存都有人专门测试过,但作者也比较推荐第一种方法。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“PySide和PyQt加载ui文件的两种方法”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2025年04月26日
2025年04月26日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]