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
您可能感兴趣
- vue加element ui弹窗(Vue中ElementUI分页组件Pagination的使用方法)
- treeview怎么加载节点(AmazeUi Tree树形结构 应用小结)
- amazeui怎么设置侧边栏(AmazeUI 等分网格的实现示例)
- docker管理脚本(Docker可视化ui管理工具Portainer安装及使用解析)
- element-ui如何关闭表单验证(ElementUI实现el-form表单重置功能按钮)
- amazeui图标(AmazeUI 折叠面板的实现代码)
- hbuilderx怎么创建web项目(HBuilder如何设置web服务器)
- vueelementui左侧菜单(Vue Element前端应用开发之动态菜单和路由的关联处理)
- 前端app开发适配消息栏(AmazeUI 导航条的实现示例)
- easyui datebox的用法
- docker管理工具选择(Docker可视化管理工具DockerUI的使用)
- thinkphp5如何实现消息队列(thinkPHP5.1框架使用SemanticUI实现分页功能示例)
- gzip指令配置参数用法(Gzip在apache2中的设置和squid对它的处理)
- 前端模态框数据(amazeui模态框弹出后立马消失并刷新页面)
- docker镜像和容器(使用docker build kit构建树莓派上可用的Docker镜像)
- vueelementui三级菜单(vue+element ui实现锚点定位)
- 点赞 禹州苌庄正式撤乡建镇 未来发展不可估量(禹州苌庄正式撤乡建镇)
- 它荣获 中国生态魅力镇 称号 就在咱们禹州,一起来看看(中国生态魅力镇)
- 真牛 禹州将建成中等城市(禹州将建成中等城市)
- 被骂欺师灭祖,与郭德纲公开叫板,何云伟改名何沄伟,开始画画了(与郭德纲公开叫板)
- 相声转行影帝,被何晴抛弃,甩10年女友闪婚生子,刘威不靠谱情史(相声转行影帝被何晴抛弃)
- 岳云鹏不说相声,改行演员了 网友 快回来说相声(岳云鹏不说相声)
热门推荐
- 数据库安装到docker(基于docker安装mariadb配置过程解析)
- frameset与iframe 的应用与区别
- SQL Server ltrimrtrim函数的用法(SQL Server ltrimrtrim 去不掉空格的原因分析)
- tomcat集群如何实现线程安全(如何通过LambdaProbe实现监控Tomcat)
- mysql索引优化技巧(MySQL如何优化索引)
- centos安装php5.6(Centos7 Yum安装PHP7.2流程教程详解)
- wdc真正的底层公链(LiteSpeed服务器用htaccess的防盗链代码)
- ASP.NET中使用CodeDomProvider调用js文件中的js方法
- docker远程部署(Docker内网穿透frp部署实现过程解析)
- 搭建php和mysql的运行环境(Windows环境开发PHP完整配置教程Apache+Mysql+PHP)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9