PyQt4 UI设计和调用 使用eric6
使用工具eric6
安装包地址:
http://eric-ide.python-projects.org/eric-download.html
1.需要安装python和pyqt为前提,然后安装eric
2.安装好后在 C:\Python27\Lib\site-packages\eric6 路径下找到 eric6.pyw ,打开eric6
3.第一次打开需要设置API等参数

4.使用qt编辑器开发ui界面

5.在eric内ui文件上右键编译窗体
6.生成对话框代码
计算器测试程序
# -*- coding: utf-8 -*-
"""
Module implementing Dialog_calc.
"""
from PyQt4.QtCore import pyqtSignature
from PyQt4.QtGui import QDialog
from Ui_UI_calc import Ui_Dialog
from PyQt4 import QtCore, QtGui
import sys
class Dialog_calc(QDialog, Ui_Dialog):
"""
Class documentation goes here.
"""
lcdstring = ''
operation = ''
currentNum = 0
prevlousNum = 0
result = 0
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent widget
@type QWidget
"""
QDialog.__init__(self, parent)
self.setupUi(self)
self.action()
def action(self):
#定义信号和槽关系
#按下数字执行的方法
self.connect(self.pb0, QtCore.SIGNAL('clicked()'), self.buttonClicked)
self.connect(self.pb1, QtCore.SIGNAL('clicked()'), self.buttonClicked)
self.connect(self.pb2, QtCore.SIGNAL('clicked()'), self.buttonClicked)
self.connect(self.pb3, QtCore.SIGNAL('clicked()'), self.buttonClicked)
self.connect(self.pb4, QtCore.SIGNAL('clicked()'), self.buttonClicked)
self.connect(self.pb5, QtCore.SIGNAL('clicked()'), self.buttonClicked)
self.connect(self.pb6, QtCore.SIGNAL('clicked()'), self.buttonClicked)
self.connect(self.pb7, QtCore.SIGNAL('clicked()'), self.buttonClicked)
self.connect(self.pb8, QtCore.SIGNAL('clicked()'), self.buttonClicked)
self.connect(self.pb9, QtCore.SIGNAL('clicked()'), self.buttonClicked)
self.connect(self.pb_point, QtCore.SIGNAL('clicked()'), self.buttonClicked)
#按下操作执行的方法
self.connect(self.pb_plus, QtCore.SIGNAL('clicked()'), self.opClicked)
self.connect(self.pb_sub, QtCore.SIGNAL('clicked()'), self.opClicked)
self.connect(self.pb_mul, QtCore.SIGNAL('clicked()'), self.opClicked)
self.connect(self.pb_div, QtCore.SIGNAL('clicked()'), self.opClicked)
#按下清除执行的方法
self.connect(self.pb_clear, QtCore.SIGNAL('clicked()'), self.clearClicked)
#按下等于号执行的方法
self.connect(self.pb_eq, QtCore.SIGNAL('clicked()'), self.eqClicked)
def buttonClicked(self):
#最多显示8位
# print len(Dialog_calc.lcdstring)
if len(Dialog_calc.lcdstring) <= 7 :
Dialog_calc.lcdstring += self.sender().text()
#第一个输入的是小数点时候替替换为0.
if Dialog_calc.lcdstring == '.':
Dialog_calc.lcdstring = '0.'
#去掉多次输入小数点时候的错误
elif str(Dialog_calc.lcdstring).count('.') > 1:
Dialog_calc.lcdstring = str(Dialog_calc.lcdstring)[:-1]
self.lcd.display(Dialog_calc.lcdstring)
Dialog_calc.currentNum = float(Dialog_calc.lcdstring)
def opClicked(self):
Dialog_calc.prevlousNum = Dialog_calc.currentNum
Dialog_calc.currentNum = 0
Dialog_calc.lcdstring = ''
Dialog_calc.operation = self.sender().objectName()
def clearClicked(self):
Dialog_calc.lcdstring = ''
Dialog_calc.operation = ''
Dialog_calc.currentNum = 0
Dialog_calc.prevlousNum = 0
Dialog_calc.result = 0
self.lcd.display('0')
def eqClicked(self):
if Dialog_calc.operation == 'pb_plus':
Dialog_calc.result = Dialog_calc.prevlousNum + Dialog_calc.currentNum
self.lcd.display(Dialog_calc.result)
elif Dialog_calc.operation == 'pb_sub':
Dialog_calc.result = Dialog_calc.prevlousNum - Dialog_calc.currentNum
self.lcd.display(Dialog_calc.result)
elif Dialog_calc.operation == 'pb_mul':
Dialog_calc.result = Dialog_calc.prevlousNum * Dialog_calc.currentNum
self.lcd.display(Dialog_calc.result)
elif Dialog_calc.operation == 'pb_div':
if Dialog_calc.currentNum == 0:
self.lcd.display('Error')
Dialog_calc.result = 0
else:
Dialog_calc.result = Dialog_calc.prevlousNum / Dialog_calc.currentNum
self.lcd.display(Dialog_calc.result)
Dialog_calc.currentNum = Dialog_calc.result
Dialog_calc.lcdstring = ''
def closeEvent(self, QCloseEvent):
reply = QtGui.QMessageBox.question(self,u'警告',u'是否退出',QtGui.QMessageBox.Yes,QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
QCloseEvent.accept()
else:
QCloseEvent.ignore()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
mycalc = Dialog_calc()
mycalc.show()
sys.exit(app.exec_())
7.F2运行代码,当然也可以用PyCharm去写,比较习惯点。

PyQt4 UI设计和调用 使用eric6的更多相关文章
- Qt Designer设计 UI 文件并调用
本文介绍的是Qt Designer设计 UI 文件并调用,在坛子里逛了一圈,关于UI方面的好像不怎多,本篇给大家分享一下. AD: 2013云计算架构师峰会超低价抢票中 Qt Designer设计 U ...
- Android 高级UI设计笔记07:RecyclerView 的详解
1. 使用RecyclerView 在 Android 应用程序中列表是一个非常重要的控件,适用场合非常多,如新闻列表.应用列表.消息列表等等,但是从Android 一出生到现在并没有非常 ...
- 从Web借鉴UI设计
从Web借鉴UI设计 用户体验已经成为衡量应用软件质量的重要标准.在过去我们可能会惊叹于某个Web应用的华丽界面,现在,随着HTML5的强势登场,各类表现层技术及开发框架的发布,Web与窗体应用的界限 ...
- 【转】【Android UI设计与开发】之详解ActionBar的使用,androidactionbar
原文网址:http://www.bkjia.com/Androidjc/895966.html [Android UI设计与开发]之详解ActionBar的使用,androidactionbar 详解 ...
- 说说UI设计
近期的项目验收中,无数次的提到了UI的设计,首先来说说为什么UI设计如此重要. 对于用户来说产品的外观是最先映入眼帘的,无论你用了什么高端的技术,无论你后台代码封装的多么好,用户是无法体会到的,能体会 ...
- 为何invalidate()不可以直接在UI线程中调用&invalidate与postInvalidate
1.android ui操作为什么一定要在主线程中执行? 答:Android UI操作是单线程模型,关于UI更新的相关API(包括invalidate())都是按照单线程设计的,对于多线程运行时不安全 ...
- GUI设计和UI设计有什么区别?
首先从技术的角度分析两者处于包含与被包含的关系. GUI=Graphical User Interface,是指在计算机出现后,在屏幕上使用图形界面来帮助(User)与机器打交道用的界面接口,泛指在计 ...
- 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面
本系列文章都会以一个程序的实例开发为主线来进行讲解,以求达到一个循序渐进的学习效果,这样更能加深大家对于程序为什么要这样写的用意,理论加上实际的应用才能达到事半功倍的效果,不是吗? 最下方有源码的下载 ...
- PROJECT | 四则运算UI设计 - 项目总结
[项目Github地址] https://github.com/oTPo/hw2 [项目规划] PSP表格 事项 预计时间(min) 实际花费时间(min) 需求分析 60 60 开发流程分析 30 ...
随机推荐
- Atitit. C#.net clr 2.0 4.0新特性
Atitit. C#.net clr 2.0 4.0新特性 1. CLR内部结构1 2. CLR 版本发展史3 3. CLR 2.0 3 4. CLR 4 新特性 概览4 4.1.1. 托管与本地 ...
- std::vector
Vector Vectors are sequence containers representing arrays that can change in size. Just like arrays ...
- nginx正则说明
nginx正则说明 分类: nginx -- : 11758人阅读 评论() 收藏 举报 nginx正则表达式firefox ^~ 标识符后面跟一个字符串.Nginx将在这个字符串匹配后停止进行正则表 ...
- [转]jsonp详解
jsonp详解 json相信大家都用的多,jsonp我就一直没有机会用到,但也经常看到,只知道是“用来跨域的”,一直不知道具体是个什么东西.今天总算搞明白了.下面一步步来搞清楚jsonp是个什么玩意. ...
- is char signed or unsigned?
工作这么多年,一直认为char是有符号的,而事实上gcc和vs默认也是有符号,但是c规范里实际并没有指明char是有符号还是无符号,所以char比较特殊, char signed char unsig ...
- va_list可变参数
可变参数函数实现 va_list,va_start,va_arg,va_end va可变参数意思,variable-argument. 1. 头文件及实现 linux中定义在gcc头文件中,stdar ...
- linux rz xshell
这个命令写好好几次 就是没有记住 放到这里 每次用的时候查一遍 慢慢就记住了~~~ sudo yum install lrzsz -y
- 解决ionic 2载入速度慢的问题
1.ionic build android --prod 使用生产环境的服务器 (最关键部分) [--production-mode=y,n] ................. Tell Io ...
- 如何在xampp中运行php文件 (WINDOWS)
from:http://blog.sina.com.cn/s/blog_5e87822501011os2.html 入门: 如何在xampp中运行php文件 (WINDOWS) 安装XAMPP启动ap ...
- osx中使用defaults
有时候须要改动osx系统的一些默认设置,这时候会用到defaults命令,查看一下defaults的man文档,对defaults的解释例如以下: defaults - access the Mac ...