使用pyside+designer将.ui文件转化为.py文件的两种方法
来源:互联网 发布:windows ftp客户端 编辑:程序博客网 时间:2024/06/05 23:00
一、使用pyside-uic.exe将.ui文件转化为.py文件
1、进入Pycharm的设置界面
2、进入外部工具设置
3、配置designer.exe,注意program路径和working directory路径
4、配置pyUIC,注意找到pyside-uic.exe文件所在的路径和参数
当配置完成之后就可以直接在pycharm中利用designer生成.ui文件,并且使用pyUIC将.ui文件转化为.py文件。这里给出一个Pyqt的配置链接PyQt5+python3+pycharm开发环境配置,比较详细,不清楚的朋友可以学习一下
二、使用pysideuic直接载入.ui文件
我们打开.ui文件时会发现ui文件实际上是一个xml文件,我们可以写一个方法解析ui文件,并且返回该界面类及其基类,例如我们写的是一个主窗口界面继承自QMainWindow,类名为MyWindow,那么我们就可以返回QMainWindow和MyWindow,这里的代码来自PySide和PyQt加载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)
还有一种使用QUiloade可以直接动态加载ui文件的方法QUiloader,示例代码为:
class MyWidget(QWidget): def __init__(self, parent): super(QWidget, self).__init__(parent) loader = QUiLoader() file = QFile(":/forms/myform.ui") file.open(QFile.ReadOnly) myWidget = loader.load(file, self) file.close() layout = QVBoxLayout() layout.addWidget(myWidget) self.setLayout(layout)
利用with语句可以简化文件操作:
from PySide.QtGui import *from PySide.QtUiTools import *from PySide.QtCore import *import sysclass UiFile: def __init__(self,file_name): self.file_name = file_name self.file = QFile(file_name) def __enter__(self): return self.file def __exit__(self, exc_type, exc_val, exc_tb): self.file.close()def Open_UiFile(filename): return UiFile(filename)if __name__ == '__main__': app = QApplication(sys.argv) loader = QUiLoader() with Open_UiFile('tt.ui') as file: file.open(QFile.ReadOnly) myDialog = loader.load(file) myDialog.button = QPushButton("test",myDialog) myDialog.verticalLayout.addWidget(myDialog.button) myDialog.show() sys.exit(app.exec_())
阅读全文
0 0
- 使用pyside+designer将.ui文件转化为.py文件的两种方法
- 使用Qt+PySide将UI文件转化为py文件
- PySide和PyQt加载ui文件的两种方法
- 把Qt Designer的ui文件转换为PySide页面文件
- 把Qt Designer的ui文件转换为PySide页面文件
- pycharm中如何将ui文件转化为py文件,以及Pycharm和QtDesigner的集合
- pyside使用qt的ui文件
- pyqt4使用qt designer设计的ui文件的方法(将ui文件转换为python源码和类的方法)
- qt designer设计的.ui文件转.py文件
- 将文件转化为字符串的方法
- pyinstaller--将py文件转化成exe
- py文件编译为exe的方法
- python下将py文件转成pyc文件的方法
- pyInstaller 将python文件.py转换为windows可执行文件.exe的标准化方法
- PyQt5使用Designer设计UI的两种实现方式
- 使用xslt将xml转化为xhtml的形似(下两种方法不要进行xsl文件的引用)
- pyqt 使用 Qt Designer 设计的ui文件
- 如何使用Qt Designer生成的ui文件
- 排序算法(一)直接插入排序
- 数据库MYSQL入门教程(3)——数据类型
- ANDROID样式的开发:VIEW ANIMATION篇
- leetcode 46 purmutation
- Dvwa之Csrf攻击笔记
- 使用pyside+designer将.ui文件转化为.py文件的两种方法
- chkstk.asm堆栈溢出的一种解决方案
- 如何使用github上传代码
- 台湾大学机器学习基石Lecture11
- 论如何用四种方法扫荡一道题
- 不求服务端,自己改接口!Charles抓包工具在Android/iOS开发中的应用
- 常见的设计模式
- 栈的存储结构
- android中从数组资源中得到图片资源