pyqt第三方控件(PySide和PyQt加载ui文件的两种方法)
类别:脚本大全 浏览量:1679
时间:2022-01-21 00:38:54 pyqt第三方控件
PySide和PyQt加载ui文件的两种方法本文实例为大家分享了PySide和PyQt加载ui文件的具体实现代码,供大家参考,具体内容如下
在用PySide或PyQt的时候,经常用到要将画好的ui文件导入到代码里使用,下面是两种调入的方法:
|
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_() |
当然如果是用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就可以调用.ui文件了,而且这两种调用方法的性能和占用的内存都有人专门测试过,但作者也比较推荐第一种方法。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/lulongfei172006/article/details/53894593
您可能感兴趣
- wordpress如何在文章中自定义html(wordpress添加Html5的表单验证required方法小结)
- docker目录映射不起作用(关于dockerfile build过程中报/bin/sh: pip: command not found的解决方法)
- easyui combobox级联
- dockerbuild清除缓存(Docker自动化构建Automated Build实现过程图解)
- 使用mui制作页面案例(Yii框架页面渲染操作实例详解)
- treeview怎么加载节点(AmazeUi Tree树形结构 应用小结)
- elementui自定义坐标(element-ui 上传图片后标注坐标点)
- docker管理工具选择(Docker可视化管理工具DockerUI的使用)
- easyui layout 自适应
- docker镜像和容器(使用docker build kit构建树莓派上可用的Docker镜像)
- mysql批量生成uuid(一种简单的ID生成策略: Mysql表生成全局唯一ID的实现)
- ui界面的测试用例(AmazeUI中模态框的实现)
- amazeui官网(AmazeUI 评论列表的实现示例)
- C# string 和 stringbuilder 的区别
- elementui和vue详解(Vue+Element UI实现概要小弹窗的全过程)
- thinkphp5如何实现消息队列(thinkPHP5.1框架使用SemanticUI实现分页功能示例)
- 二次创业 的富士胶片,在进博会上首次展示完成转型后的全线医疗产品(二次创业的富士胶片)
- 富士胶片 中国 我们对上海的信心没有任何改变(富士胶片中国)
- 赢麻了 富士公布2021年度财报 营利同比增长240(富士公布2021年度财报)
- 医事文化谈屑 | 古人的名 字 号(医事文化谈屑古人的名)
- ()
- 网友很惭愧,自己写了很多年的字,到头来还不如一名小学生写的好(自己写了很多年的字)
热门推荐
- python图文生成器(Python生成器的使用方法和示例代码)
- laravel框架知识点(Laravel 不同生产环境服务器的判断实践)
- css如何让图片居中
- python爬虫经典步骤(详解python爬虫系列之初识爬虫)
- nodejs的广播机制(node.js如何自定义实现一个EventEmitter)
- dedecms不能调用文章发布时间(dedecms文章页上一篇与下一篇标题长度截取的方法)
- 小白vue教学(尤大大新活petite-vue的实现)
- tomcat架构解析(浅谈Tomcat多层容器的设计)
- docker中国加速镜像怎么设置(Docker 安装及配置镜像加速的实现)
- python表格导出为图片(python生成带有表格的图片实例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9