PySide和PyQt加载ui文件的两种方法
来源:互联网 发布:creis中指数据 app 编辑:程序博客网 时间:2024/06/04 23:31
在用PySide或PyQt的时候,经常用到要将画好的ui文件导入到代码里使用,下面是两种调入的方法:
import PyQt4.uicfrom PyQt4 import QtCore, QtGuiMainWindowForm, 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.uicfrom PyQt4 import QtCore, QtGuiclass 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 QtGuiimport xml.etree.ElementTree as xmlfrom cStringIO import StringIOdef 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文件了,而且这两种调用方法的性能和占用的内存都有人专门测试过,但作者也比较推荐第一种方法,详细情况请看下面的链接。
PyQt load .ui file
0 0
- PySide和PyQt加载ui文件的两种方法
- 使用pyside+designer将.ui文件转化为.py文件的两种方法
- pyside使用qt的ui文件
- PyQt + QtDesigner的ui文件
- Java加载和解析XML文件的两种方法
- paip.python pyqt 加载ui 方法使用connect总结attilax
- 论Java加载和解析XML文件的两种方法
- pyqt 加载资源文件
- HTML加载外部css文件的两种方法
- Java加载资源文件的两种方法
- Java加载资源文件的两种方法
- Java加载资源文件的两种方法
- Java加载资源文件的两种方法
- java加载资源文件的两种方法
- 把Qt Designer的ui文件转换为PySide页面文件
- 把Qt Designer的ui文件转换为PySide页面文件
- ios UI加载xib文件到控制器的两种方式(MS)
- 【tensorflow】文件队列的两种创建和加载方式
- 确定两串乱序同构
- Linux下FTP服务器默认目录的更改方法
- USB描述符
- 极光推送android
- http长连接、长轮询的理解
- PySide和PyQt加载ui文件的两种方法
- 文本框加灰色提示信息
- 神经网络训练之数据归一化处理
- 非常实用,Android引用ttf图标字体库
- 医院信息科面试题和笔试题汇总(计算机相关专业)
- 转呀转不晕矩阵
- linux 登陆ftp及文件上传及下载
- linux中vsftp设置用户默认ftp目录的例子
- linux定时任务添加简单总结