pyqt开发教程-搭建环境和开发示例
搭建环境和开发示例
* 安装
安装包
要对应python的版本
32位安装包(我PC上)
或 64位安装包
安装目录
指定python目录即可,如 C:\Python27\
运行
参考 http://www.pythoner.com/111.html
* 使用
API文档看 这里
简单UI开发
手工编辑代码
实用UI开发
– eric4/eric5
提供UI编辑功能
http://nchc.dl.sourceforge.net/project/eric-ide/eric5/stable/5.5.0/eric5-5.5.0.zip
– 安装(windows)
1.解压到eric5-5.5.0
2.在 eric5-5.5.0/下命令行执行 python install.py
– 启动
1.在 eric5-5.5.0/eric/下,双击 eric.pyw
– qt designer
– 编辑UI,生成xxx.ui文件
– 用ui文件生成py代码
pyuic4 -o 文件名.py 项目名.ui
-x 选项 该参数表示是否生成额外的测试代码来显示窗口,建议加上该参数,这样的话可以方便直接调试运行。
– 生成的py文件
包含 Ui_Dialog 类作为界面描述代码
– 可以直接编辑,作为项目主文件
如加入以下代码后可运行
if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) Dialog = QtGui.QDialog() ui = Ui_Dialog() ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec_())
打包
– py2exe打包成exe
– 安装 (windows)
下载对应python版本的安装包
http://ncu.dl.sourceforge.net/project/py2exe/py2exe/0.6.9/py2exe-0.6.9.win32-py2.7.exe
– 依赖
MSVCP90.dll (不清楚为什么只是要这个文件,其他的 MSVCPxxx.dll 似乎都不行)
放置在C:\Windows\System32下
– 使用
将该文件放置要打包的项目目录下,要打包时双击执行,在dist/下生成可执行文件(该文件 setup.windows 中指定的名称)
""" 文件名qt_pkg_tools.py ,以下才是源代码""" #!/usr/bin/env python #coding=utf-8 from distutils.core import setup import py2exe import sys #this allows to run it with a simple double click. sys.argv.append('py2exe') py2exe_options = { "includes": ["sip"], "dll_excludes": ["MSVCP90.dll",], "compressed": 1, "optimize": 2, "ascii": 0, "bundle_files": 1, } setup(
name = 'PyQt Demo',
version = '1.0',
windows = ['pyqtdemo.py',],
zipfile = None,
options = {'py2exe': py2exe_options}
)
* FAQ
打包后,运行时失败
打包后执行时,有时还是会提示缺少MSVCP90.dll,删除掉dist/目录,重新生成即可
http://www.seanyxie.com/pyqt%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B-%E6%90%AD%E5%BB%BA%E7%8E%AF%E5%A2%83%E5%92%8C%E5%BC%80%E5%8F%91%E7%A4%BA%E4%BE%8B/
pyqt开发教程-搭建环境和开发示例的更多相关文章
- Xamarin Andro教程搭建Xamarin Androidid开发环境(一)
Xamarin Andro教程搭建Xamarin Androidid开发环境(一) "工欲善其事,必先利其器".对于程序员来说,编程的环境就是其手中的利器.如果没有一个合适方便的编 ...
- Xamarin开发教程如何使用Xamarin开发Android应用
Xamarin开发教程如何使用Xamarin开发Android应用 如何使用Xamarin开发Android应用 在了解了Xamarin和Andriod系统之后,下面我们需要了解一下如何使用这些工具和 ...
- web前端开发教程系列-1 - 前端开发编辑器介绍
目录: 前言 一. Webstorm 1. 优点 2. 缺点 3. 教程 4. 插件 5. 技巧 二. SublimeText 1. 优点 2. 缺点 3. 教程 4. 插件 5. 技巧 前言 由于很 ...
- [ PyQt入门教程 ] PyQt5环境搭建和配置
PyQt入门系列教程主要目的是希望通过该系列课程学习,可以使用PyQt5工具快速实现简单的界面开发,包括界面设计.布局管理以及业务逻辑实现(信号与槽).简单说就是可以使用PyQt5工具快速画一个控件摆 ...
- vue + cesium开发(5) 搭建 vue + cesium开发环境(2)
上vue+cesium开发(1)中,没有进行配置webpack,而是使用了插件进行代替,在使用过程中出现了一些未知BUG,影响体验,因此参考了官方文档对项目进行重新配置,使用了 copy-webpac ...
- Unity3D开发之搭建Mac OS开发环境
运行图 首先上几张图 IOS模拟器 坚屏 横屏 打包任务 摸索了一上午,才搞定在模拟器中运行.至于在Iphone真机中运行,虽然有开发者证书,目前还没在Xcode中配置好. 我今天第一次接触并使用MA ...
- web前端开发教程系列-4 - 前端开发职业规划
前言 关于我:小天 1). 架构师,项目经理,产品经理 2). 中间件研发 3). VPCC 云计算基础平台管理 4). 智慧旅游 5). 智慧教育 6). 一次失败的创业体验(爱邂逅网) 一. 在开 ...
- web前端开发教程系列-3 - 前端开发调试工具分享
前言 一. Bug出现的原因 1. 主观原因或者是出现这么多浏览器的原因 2. 另外客观原因: 二. 调试工具 1. Firebug 2. Chrome 3. IE11 4. IETester 5. ...
- 微信公众帐号开发教程第4篇-----开发模式启用及接口配置Java
欢迎加入群:347245650 345531810 进行讨论相互交流 我的微信号:572839485 我的微信公众账号 我的微社区欢迎关注 索取源码←请点击 图床:没有服务器 拖拽图片 外网即 ...
随机推荐
- 解压tomcat后一闪而过的问题
解压tomcat压缩包后,直接点击startup会出现一闪而过. 免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动. 原因是:在启动tomcat是,需要读 ...
- House Robber & House Robber II
You are a professional robber planning to rob houses along a street. Each house has a certain amount ...
- OpenGL绘制简单的时钟(首发测试)
#include <windows.h> #include <GL/glut.h>//本来OpenGL程序一般还要包含<GL/gl.h>和<GL/glu.h& ...
- mysql触发器使用注意
1.在创建触发器的时候,语句中避免在一个select语句查询多个列,例如使用select a,b from table,应该分开使用select语句, 例如select a from table s ...
- Android Fragment StartActivityForresult调用实例
fragment里面的onActivityResult 怎样才能被调用,很简单,就一句话, startActivityForResult(intent, getActivity().RESULT_FI ...
- c++中vector与list的区别
c++标准库中,容器vector和list都可以用来存放一组类型相同的数据.而且二者不同于数组的一点是,支持动态增长.但它们还是有有几点不同 (1) vector是顺序表,表示的是一块连续的内存,元 ...
- SQL Server一些重要视图 1
第一个: sys.indexs 每个堆与索引在它上有一行. 第二个: sys.partitions每个堆与索引的每一个分区返回一行.每一张表最多可以有1000个区. 第三个: sys. allocat ...
- J2SE知识点摘记-数据库(二)
一. 查询数据 注意sql的内容. 通过ResultSet接口保存全部的查询结果,通过Statement接口中的executeQuery()方法查询.查询之后需要分别取出.通过nex ...
- Tempo 2.0
Tempo 2.0 Tempo is an easy, intuitive JavaScript rendering engine that enables you to craft data tem ...
- C++ 下 typeof 的实现
现在我们有这样一坨代码: std::vector<int> arr; // ... for(std::vector<int>::iterator iter = arr.begi ...