最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年02月27日 11:08:23   作者:lulongfei172006  
這篇文章主要為大家詳細(xì)介紹了PySide和PyQt加載ui文件的兩種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了PySide和PyQt加載ui文件的具體實現(xiàn)代碼,供大家參考,具體內(nèi)容如下

在用PySide或PyQt的時候,經(jīng)常用到要將畫好的ui文件導(dǎo)入到代碼里使用,下面是兩種調(diào)入的方法:

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_()

當(dāng)然如果是用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就可以調(diào)用.ui文件了,而且這兩種調(diào)用方法的性能和占用的內(nèi)存都有人專門測試過,但作者也比較推薦第一種方法。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

安顺市| 钦州市| 江达县| 呼图壁县| 胶南市| 库车县| 屏山县| 苏尼特右旗| 阿克苏市| 新密市| 辰溪县| 郴州市| 大厂| 香河县| 开鲁县| 东城区| 通许县| 安陆市| 栾城县| 嵊泗县| 天气| 荔浦县| 赤水市| 榆树市| 万安县| 绵阳市| 织金县| 子长县| 邮箱| 皮山县| 蒙山县| 女性| 安化县| 府谷县| 盐亭县| 聊城市| 桦川县| 定安县| 久治县| 青岛市| 澄迈县|