香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

PySide和PyQt加载ui文件的两种方法


时间:2022-04-02 10:20 作者:admin


本文实例为大家分享了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文件了,而且这两种调用方法的性能和占用的内存都有人专门测试过,但作者也比较推荐第一种方法。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)