时间:2021-05-22
本文实例为大家分享了PySide和PyQt加载ui文件的具体实现代码,供大家参考,具体内容如下
在用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文件了,而且这两种调用方法的性能和占用的内存都有人专门测试过,但作者也比较推荐第一种方法。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
UIWebView是用来加载加载网页数据的一个框。UIWebView可以用来加载pdfworddoc等等文件生成webview有两种方法:1、通过storybo
一般说来,你会把模板以文件的方式存储在文件系统中,但是你也可以使用自定义的templateloaders从其他来源加载模板。Django有两种方法加载模板dja
PySide是一个免费的软件,与PyQt不同之处在于使用了LGPL,允许PySide免费的开发商业软件。PySide有15个模块。这些模块支持对GUI,多媒体,
java加载properties文件的六种方法总结java加载properties文件的六中基本方式实现java加载properties文件的方式主要分为两大类
本文实例讲述了动态加载jQuery的两种方法。分享给大家供大家参考。具体如下:第一种方法参考本站之前有人发的代码,增加了加载检测;第二种方法来自去年的12306