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
您可能感兴趣
- ui界面的测试用例(AmazeUI 模态窗口的实现代码)
- elementuivue使用技巧(Vue Element前端应用开发之常规Element界面组件)
- elementui下拉框联动(Element树形控件整合带图标的下拉菜单tree+dropdown+input)
- docker管理工具选择(Docker可视化管理工具DockerUI的使用)
- elementui和vue详解(Vue+Element UI实现概要小弹窗的全过程)
- app开发自定义导航栏(AmazeUI底部导航栏与分享按钮的示例代码)
- 导航app开发的技术(AmazeUI导航的示例代码)
- python模块光照强度(我如何用 CircuitPython 和开源工具监控温室)
- 安卓app开发用什么设计ui(AmazeUI框架搭建的方法步骤图文)
- vueelementui组件生成页面(Vue Element前端应用开发之树列表组件)
- vue加element ui弹窗(Vue中ElementUI分页组件Pagination的使用方法)
- amaze ui使用教程(Amaze UI 文件选择域的示例代码)
- amazeui官网(AmazeUI 评论列表的实现示例)
- amaze软件(amazeui时间组件的实现示例)
- 前端app开发适配消息栏(amazeui页面校验功能的实现代码)
- thinkphp5如何实现消息队列(thinkPHP5.1框架使用SemanticUI实现分页功能示例)
- 今天 3月13日,31年前,一个英雄少年感动了中国(今天3月13日31年前)
- 你好,新成理人丨成都理工大学2019级新生开学典礼隆重举行(新成理人丨成都理工大学2019级新生开学典礼隆重举行)
- 这部民警编演的红色话剧,讲述了一个不断追寻的故事(这部民警编演的红色话剧)
- 日本菜有什么好吃(日本菜有什么好吃的做法)
- 韩国泡菜做法(韩国泡菜的做法步骤)
- 泰国旅游攻略(泰国旅游攻略必去景点)
热门推荐
- dedecms标题在哪改(织梦DEDECMS文章拼音命名规则时去掉id的方法)
- azure部署教程(使用 Azure Container Registry 储存镜像的问题)
- python基础教学之125 装饰器简介(python3 property装饰器实现原理与用法示例)
- thinkphp快速入门手册(从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解)
- 面试中如何给人留下好印象
- python获取excelsheet名称(python查询文件夹下excel的sheet名代码实例)
- apache中配置虚拟主机的作用(apache基于端口创建虚拟主机的示例)
- 织梦自定义表单怎么设置数据(让织梦artlist标签增加notypeid属性实现栏目过滤)
- python strip用法(Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析)
- mysql锁机制及原理(MySQL锁阻塞的深入分析)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9