国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

PySide和PyQt加載ui文件的兩種方法

2020-02-16 01:24:42
字體:
來源:轉載
供稿:網友

本文實例為大家分享了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文件了,而且這兩種調用方法的性能和占用的內存都有人專門測試過,但作者也比較推薦第一種方法。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 喀什市| 英超| 浦东新区| 岚皋县| 高要市| 定州市| 扶余县| 石景山区| 河北区| 泸溪县| 河南省| 轮台县| 沅陵县| 含山县| 深州市| 贞丰县| 奎屯市| 涡阳县| 东乌| 峨边| 汕尾市| 会昌县| 肃南| 房山区| 扎鲁特旗| 东港市| 犍为县| 本溪市| 朝阳市| 山丹县| 永平县| 丽江市| 镇雄县| 中西区| 永宁县| 寿阳县| 绵竹市| 黄平县| 教育| 吉林省| 安丘市|