使用Qt设计师文件的3种方式

使用Qt设计师设计的.ui界面文件是XML文件,有3种方式在PyQt中使用,本文将通过实例进行讲解。

使用PyQt中如何结合Qt设计师进行开发中的例子。点击按钮修改标签的内容。

1. 直接使用ui文件

PyQt4的ui模块提供了加载.ui文件的功能,ui.uic.loadUi(uifile[, baseinstance=None])方法会返回一个QWdiget子类的实例。

优点:不用手工转换.ui文件,直接使用。
缺点:效率低,多一个在运行中的转换过程;.ui文件暴露在外,不利于发布。
代码如下(widget1.py):

# -*- coding: utf-8 -*-
from PyQt4 import QtGui, uic

class Widget(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = uic.loadUi(‘widget.ui‘)
self.ui.show()

self.ui.pbHello.clicked.connect(self.sayHello)

def sayHello(self):
self.ui.lHello.setText("Hello PyQt4")

if __name__ == ‘__main__‘:
import sys
app = QtGui.QApplication(sys.argv)
widget = Widget()
sys.exit(app.exec_())
2. 转换后加载使用

先用pyuic4命令转让成.py文件,再通过setupUi()调用。和方法1类似,多了个转换过程。

优点:界面加载速度快,方便打包发布。
缺点:调用界面中的对象需要通过self.ui,代码写的比较麻烦;每次修改.ui文件后都需要转换。
先转换:

$ pyuic4 -o ui_widget.py widget.ui
代码如下(widget2.py):

# -*- coding: utf-8 -*-
from PyQt4 import QtGui
from ui_widget import Ui_Form

class Widget(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_Form()
self.ui.setupUi(self)

self.ui.pbHello.clicked.connect(self.sayHello)

def sayHello(self):
self.ui.lHello.setText("Hello PyQt4")

if __name__ == ‘__main__‘:
import sys
app = QtGui.QApplication(sys.argv)
widget = Widget()
widget.show()
sys.exit(app.exec_())
3. 转换后通过多重继承使用

和方法2类似,但是写类的时候用多重继承的方式。

优点:代码写的跟简单;可以通过self.objectName方式引用界面对象;可以使用Decorator方式绑定信号和槽。
缺点:每次修改.ui文件后都需要转换。
代码如下(widget3.py):

# -*- coding: utf-8 -*-
from PyQt4 import QtGui, QtCore
from ui_widget import Ui_Form

class Widget(QtGui.QWidget, Ui_Form):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setupUi(self)

@QtCore.pyqtSignature("")
def on_pbHello_clicked(self):
self.lHello.setText(‘Hello PyQt4‘)

if __name__ == ‘__main__‘:
import sys
app = QtGui.QApplication(sys.argv)
widget = Widget()
widget.show()
sys.exit(app.exec_())

时间: 2024-08-05 19:55:31

使用Qt设计师文件的3种方式的相关文章

Asp.Net 下载文件的几种方式

asp.net下载文件几种方式 protected void Button1_Click(object sender, EventArgs e) { /* 微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite 下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题. 代码如下: */ Response.ContentType = "application/x-zip-compressed";

C#中的Excel操作【1】——设置Excel单元格的内容,打开Excel文件的一种方式

前言 作为项目管理大队中的一员,在公司里面接触最多的就是Excel文件了,所以一开始就想从Excel入手,学习简单的二次开发,开始自己的编程之路! 程序界面 功能说明 打开文件按钮,可以由使用者指定要操作的Excel文件,并在后面的textBox中显示出文件路径. 设置单元格按钮,可以根据程序设置Excel文件的内容. 退出程序按钮,关闭窗体. 程序源代码 1 using System; 2 using System.Collections.Generic; 3 using System.Com

java读取XML文件的四种方式

java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT> <VALUE> <NO>A1234</NO> <ADDR>河南省郑州市</ADDR> </VALUE> <VALUE> <NO>B1234</NO> <ADDR>河南省郑州市二七区&

Simics虚拟机Solaris 8操作系统获取host 系统win7上的文件的两种方式

1 介绍 本文基于的环境设置如下: ? 宿主操作系统:Windows 7 Ultimate ? 寄生操作系统:Solaris 8 SPARC (SunOS 5.8) ? 虚拟环境:Simics 3.0.4 本文假定已在Simics 上安装好Solaris 8 SPARC 操作系统. 动机:一个Unix下可以运行的二进制文件GraphGen,在单独的一台装有Ubuntu的电脑上不能运行,因为该电脑的硬件架构是基于X86的,而GraphGen是SPARC架构下才能运行的程序:在我的笔记本Win7系统

解析Xml文件的三种方式及其特点

解析Xml文件的三种方式 1.Sax解析(simple api  for xml) 使用流式处理的方式,它并不记录所读内容的相关信息.它是一种以事件为驱动的XML API,解析速度快,占用内存少.使用回调函数来实现. 1 class MyDefaultHander extends DefaultHandler{ 2 private List<Student> list; 3 private Student student; 4 5 @Override 6 public void startDo

Android开发之合并文件的几种方式

下面介绍合并文件的几种方式,并通过合并amr文件来举例介绍合并文件的具体流程.amr格式的文件头是6字节,所以在进行文件合并的时候要减去除第一个文件以外的其他文件的文件头. 注意:不同文件的文件头是不一样的,所以在合并的时候根据不同文件相应的减去合并文件的文件头. 步骤一:获取要合并的文件及创建合并后保存的文件 /**用于存放要合并的文件的集合**/ List<File>tempFiles=new ArrayList<File>(); /**合并之后的文件**/ File fina

Eclipse项目中引用第三方jar包时将项目打包成jar文件的两种方式

转载自:http://www.cnblogs.com/lanxuezaipiao/p/3291641.html 方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目下建立文件MANIFEST.MF,内容如下: Manifest-Version: 1.0 Class-Path: lib/commons-codec.jar lib/commons-htt

Velocity中加载vm文件的三种方式

Velocity中加载vm文件的三种方式: a.  加载classpath目录下的vm文件 Properties p = new Properties(); // 加载classpath目录下的vm文件 // 这里是加载模板VM文件,比如:/META-INF/template/Web_B2CPayment.vm(请参考mas_spring_integration.xml) p.setProperty("file.resource.loader.class", "org.apa

Android合并文件的三种方式代码

amr格式的文件头是6字节,在进行文件合并的时候要减去除第一个文件以外的其他文件的文件头.下面介绍合并文件的几种方式,并通过合并amr文件来举例介绍合并文件的具体流程. 注意:不同文件的文件头是不一样的,所以在合并的时候根据不同文件相应的减去合并文件的文件头.具体你可以学习Android开发教程. 步骤一:获取要合并的文件及创建合并后保存的文件 /**用于存放要合并的文件的集合**/List<File>tempFiles=new ArrayList<File>();/**合并之后的