使用工具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的更多相关文章

  1. Qt Designer设计 UI 文件并调用

    本文介绍的是Qt Designer设计 UI 文件并调用,在坛子里逛了一圈,关于UI方面的好像不怎多,本篇给大家分享一下. AD: 2013云计算架构师峰会超低价抢票中 Qt Designer设计 U ...

  2. Android 高级UI设计笔记07:RecyclerView 的详解

    1. 使用RecyclerView       在 Android 应用程序中列表是一个非常重要的控件,适用场合非常多,如新闻列表.应用列表.消息列表等等,但是从Android 一出生到现在并没有非常 ...

  3. 从Web借鉴UI设计

    从Web借鉴UI设计 用户体验已经成为衡量应用软件质量的重要标准.在过去我们可能会惊叹于某个Web应用的华丽界面,现在,随着HTML5的强势登场,各类表现层技术及开发框架的发布,Web与窗体应用的界限 ...

  4. 【转】【Android UI设计与开发】之详解ActionBar的使用,androidactionbar

    原文网址:http://www.bkjia.com/Androidjc/895966.html [Android UI设计与开发]之详解ActionBar的使用,androidactionbar 详解 ...

  5. 说说UI设计

    近期的项目验收中,无数次的提到了UI的设计,首先来说说为什么UI设计如此重要. 对于用户来说产品的外观是最先映入眼帘的,无论你用了什么高端的技术,无论你后台代码封装的多么好,用户是无法体会到的,能体会 ...

  6. 为何invalidate()不可以直接在UI线程中调用&invalidate与postInvalidate

    1.android ui操作为什么一定要在主线程中执行? 答:Android UI操作是单线程模型,关于UI更新的相关API(包括invalidate())都是按照单线程设计的,对于多线程运行时不安全 ...

  7. GUI设计和UI设计有什么区别?

    首先从技术的角度分析两者处于包含与被包含的关系. GUI=Graphical User Interface,是指在计算机出现后,在屏幕上使用图形界面来帮助(User)与机器打交道用的界面接口,泛指在计 ...

  8. 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面

    本系列文章都会以一个程序的实例开发为主线来进行讲解,以求达到一个循序渐进的学习效果,这样更能加深大家对于程序为什么要这样写的用意,理论加上实际的应用才能达到事半功倍的效果,不是吗? 最下方有源码的下载 ...

  9. PROJECT | 四则运算UI设计 - 项目总结

    [项目Github地址] https://github.com/oTPo/hw2 [项目规划] PSP表格 事项 预计时间(min) 实际花费时间(min) 需求分析 60 60 开发流程分析 30 ...

随机推荐

  1. First MFC

    // stdafx.h : include file for standard system include files, // or project specific include files t ...

  2. 服务器中很多的CLOSE_WAIT

    服务器中很多的CLOSE_WAIT,请教各位大虾!!!!!!!!!最近遇到一个问题,工程在LINUX服务器上面跑起来了以后,运行一段时间 就有很多的CLOSE_WAIT链接,多了之后,网站就访问不了了 ...

  3. proxy_redirect参数的作用

    Nginx的代理功能太完善了,我们看看proxy_redirect参数的作用. 案例说明: 要做一个html.aslibra.com的域名处理很多网站的html内容,当然是后端的服务器了,目录分析 h ...

  4. Linux下查看分区UUID

    有两种方法: 1.#:blkid 2.ls -l /dev/disk/by-uuid/

  5. Vue 组件4 动态组件

    动态组件 通过使用保留的<component>元素,动态的绑定到它的is特性,我们让多个组件同时使用同一个挂载点,并动态切换: var vm = new Vue({ el: '#examp ...

  6. mockito模拟静态方法

    这里要用到使用powerMock 注意点: 1 @RunWith(PowerMockRunner.class) 2 PowerMockito.mockStatic(StaticTest.class); ...

  7. zookeeper安装笔记

    安装zookeeper,将zookeeper上传到三个服务器,保存在/usr/local/zookeeper目录下,解压tar包 tar -xzvf zookeeper-3.4.6.tar.gz 进入 ...

  8. FD_CLOEXEC用法及原因_转

    转自:使用FD_CLOEXEC实现close-on-exec,关闭子进程无用文件描述符 我们经常会碰到需要fork子进程的情况,而且子进程很可能会继续exec新的程序.这就不得不提到子进程中无用文件描 ...

  9. TP view中跳转到某个控制器

    #直接用 __MODULE__/控制器名/方法名/参数名/参数 <a href="__MODULE__/Product/list_table/goods_id/<?php ech ...

  10. Python中的图像处理

    第 1 章 基本的图像操作和处理 本章讲解操作和处理图像的基础知识,将通过大量示例介绍处理图像所需的 Python 工具包,并介绍用于读取图像.图像转换和缩放.计算导数.画图和保存结果等的基本工具.这 ...