python桌面程序_python 搭建桌面应用程序 - CSDN
精华内容
参与话题
  • 为什么用Python开发桌面应用程序

    万次阅读 2015-03-26 15:58:46
    为什么用Python开发桌面应用程序 为什么用Python开发桌面应用程序 1)wxWidgets是一个比MFC优雅的库,TortoiseCVS用wxWidges而不用MFC,就是因为wxWidgets好用,而不是为了可以移植。 2)Python的面向...

    为什么用Python开发桌面应用程序


    为什么用Python开发桌面应用程序

    1)wxWidgets是一个比MFC优雅的库,TortoiseCVS用wxWidges而不用MFC,就是因为wxWidgets好用,而不是为了可以移植。
    2)Python的面向对象脚本语言编程适合快速界面开发
    3)Python在服务器端和客户端都非常有前途,可以形成一个统一的解决方案,这一点明显比Java有优势
    4)Python桌面应用程序可以完全编译为本地代码,脱离Python运行环境,这一点比dotnetwinforms都有优势
    5)Python可以不受限制的任意调用Windows32 API,所以凡是VC6可以做的事情,Python就可以做

    试想一下,现在我们开发桌面应用程序有什么要求?
    一、不要附带一个JRE或者CLR的累赘
    二、可以快速开发
    三、性能要有保证
    四、方便的远程方法调用支持
    此外如果能够跨平台就最好了

    Java前三点都不符合;dotnetwinforms不符合一;VC6不符合二和四,VB6不符合三和四;Delphi7符合前四点;FlashRIA不符合三;Python全部都符合!并且请记住Python是一个完全开源免费的方案!

     

    使用 python开发 windows应用程序 本人以前一直用的是C++,MFC,毕业到了公司以后,公司用 python做流程,我顺便最近研究了一下用 python 开发 windows 应用程序的整个流程,大体如下:

    一、开发前期准备1.boa-constructor-0.6.1.bin.setup.exe #一个 wxWidges 的集成开发环境,简单如Delphi,可以直接拖拽控件,并且和其他集成环境不一样, #它不与集 成开发环境的 MainLoop 冲突,用pythonwin,pyScripter 都会冲突,典型 报错就是运行第二次 #程序的时候,直接导致 集成开发环境的强制退出,因为 MainLoop冲突了 2.wxPython2.8-win32-unicode-2.8.10.1-py26.exe #wxPython 库, 提供了用C++写 的 windows 组件库 wx 3.py2exe-0.6.9.win32-py2.6.exe #打包发布工具,将python 写的windows 程序或控 制台程序直接打包成 exe 可执行文件,供用户使用 上述三个软件都是基于 python2.6的,软件版本一定要配套,因为他们默认的安 装路径和 python版本有关系,否则会找不到相关库的存在。

    二、开发 软件安装完以后,打开BOA,哇塞,拖控件真简单,而且属性啥的和 Dephi 差 不多,你只要改改属性,代码会自动生成,它生成的控件很漂亮,记得以前用C++6.0 开发软件的时候,那个控件真丑,都需要我重新用控件库去绑定优化,现在不用了~BOA生成的控件,视觉效果相当好~开发软件速度相当快,再也不用为了软件界面而写太多代码,也不用为了生成一个小程序而生成了很多的文件,python开发的程序,没有多余的文件,而且文件很小。

    三、发布很多人都想在自己的软件程序写好以后,发布给其他人使用,一方面不希望自己的代码泄露,一方面以此显出一点成就感, 呵呵,可以使用 py2exe 将你的 windows 程序打包发布了!当然,首先你得写个如下的setup.py 文件: 代码 1 from distutils.core import setup 2 import py2exe3 includes = ["encodings", "encodings.*"] 4 options = {"py2exe": 5{ "compressed": 1, 6 "optimize": 2, 7 "includes": includes, 8"bundle_files": 1 9 } 10 } 11 setup( 12 version = "0.1.0", 13description = "windows program", 14 name = "winsetup", 15 options =options, 16 zipfile=None, 17 windows=[{"script": "myscript.py","icon_resources": [(1, "PyCrust.ico")] }], 18 ) 你可以在命令行下运行:pythonsetup.py py2exe,那么你就会发现你的应用程序出 现在 dist文件夹里了,恭喜你,完成了 windows 应用程序开发

    python  学习—初次接触 (python,wxpython,Boa,py2exe)

    长期使用 java 做 web 开发,有时候需要做一些小工具的话,优先考虑的一般是写ant 或 bat 等脚本,因为开发较快,并且很容易集成到 IDE中。不过有时候一 些桌面程序级别的工具也是需要的,比如说写一些文档生成相关的工具等。这个时候采用java 是不太合算的,因为开发效率不高(虽然有netbeans,eclipse 上也有 swt designer) ,性能也有一点影响,而且还必须要有 JRE 的支持。采用.net框架倒是开发效率挺高,而且性能也不错,但是 IDE价格较高,程序无法 移植 到其他平台,并且也需要有 CLR 的支持。 没招,就只有找找看其他的编程语言了。 在网上搜索了一下,发现Python可能是一个很好的替代品:面向对象的脚本语 言,稍微修改一下就可以实现跨平台,有 wxPython 这种 GUI 插 件的支持,使用py2exe 等打包工具打包之后的文件大小也远小于同样功能的 java 程序,经过某些 类似于 psyco工具的处理之后,性能也还不错。缺点 也有,就是没有一个可以 媲美 visual studio.net 的 IDE,不过也有 BoaConstructor 和 eclipse 插件 pydev 这样 的工具,应该可以忍受了。

    而且 python 作为 google的官方编程语言之一,现在在编程语言排行榜上排名前10,那么就肯定是优点胜过缺点的。那么就先简单地试用一下总是可以的吧。断断续续的用了几天时间来了解相关的工具,语法,终于写出了一个最简单的GUI 程序,并且打成了一个程序包,拷贝到到其他 PC 上运行成功。虽然中间 遇 到一些问题,但也学习了很多,所以先写 blog记下来。能帮到其他人就更好了。

    工具准备 python 现在的最新版是3.1.1,而且 3.0 之后的版本的语法与之前的版本相比已经 有了一定的变更,但是相关的 wxpython等还没有支持到这么高的版本,为了能 够使用 wxpython 来编写 GUI 程序,只能放弃新版本了。所以选择了 2.x系列中的最新版:2.6.2,同样 wxPython 也选择了 for2.6 的版本wxPython2.8-win32-unicode-2.8.10.1-py26。然后下载最新的 Boa Constructor:boa-constructor-0.6.1.bin.setup.exe。 (下载地址参见参考资料) 按顺序依次安装:python2.6.2-> wxPython2.8 -> Boa Constructor.※不过之后因为要使用 py2exe 打包的原因,把版本下降成了 2.5 系列。

    入门安装好之后,就可以直接使用了。python 自带了一个名字叫 IDLE的开发环境, 不写GUI 程序的话,还是很好用的。打开工具,写一句 print "helloworld",敲回车,马上就可以看到效果了,呵呵,似乎入门很容易。 从网上下载了一份 ppt格式的教程,简单的了解一下基本语法,然后按照教程中的示例代码练习了一下,就算入门了。相比 java 和.net的庞大类库,python算是蛮简单的,而且本身是动态语言,所以非常的灵活。动态语言是未来的趋势,多 练习点只有好处。 GUI GUI GUI GUI 虽然IDLE 基本上可以满足简单的程序,但我的主要目的还是要做 GUI 程序,所 以上手 Boa 是必不可少的。打开 Boa之后一看,界面确实有点简单, 不过 GUI程序的必备工具(工具栏,属性查看器,编辑器)一应俱全,所以也没有什么特别的。只不过有一点不爽,就是这三个东东并不是像平时使用的 IDE那 样集成在 一个窗口中的,而是分属于三个不同的窗口,在使用"Alt +Tab"键切换的时候,一次只能切换一个窗口,很不爽,不知道是从哪里参照的用户习惯。 参考这篇文章(Boa constructor 简介)中的介绍,写了一个只有一个 button 的界 面出来。 简单的步骤如下:

    1. 先创建一个 wx.App,同时会自动创建一个wx.Frame

    2. 通过 Editor 中的 Frame Designer 往 Frame 中添加了一个 wx.Panel

    3.跟 2 类似的步骤往 wx.Panel 中添加了一个 button

    4. 在 Inspector 窗口中,给 button增加一个单击事件

    5. 在这个单击事件的函数的 event.skip()前面,增加如下代码 (弹出一个确认窗口) dlg =wx.MessageDialog(self, u'yes', u'You got it~', wx.OK |wx.ICON_INFORMATION ) dlg.ShowModal() dlg.Destroy()

    6. 保存以上代码, 然后按F9 运行, 就可以看到一个带 button 的窗口, 点击 button 又会弹出一个 confirm 窗口。OK,至此程序创造成功。

    打包 了解了一下,发现有 python的打包程序至少有十几个之多,其中出名的有 py2exe,pyinstaller,pypackage。本次学习选 用了py2exe。下载了 py2exe-0.6.9.win32-py2.6.exe,安装上简单试用了一下。

    首先,先在之前用 Boa创建的目录下新建了一个 mypy.py 文件,里面内容为: from distutils.core import setupimport py2exe setup(windows=["App1.py"])

    然后执行命令:python mypy.pypy2exe,出现错误。 错误信息如下: error: MSVCP90.dll : No such file or directory查看网友的文章,可以肯定是这一个版本的问题,虽然也有解决的方法,但是并不太好,所以最终选择了直接安装低版本,版本低就相对要稳定的多嘛。于是乎,python-2.5.4.msi,wxPython2.8-win32-unicode-2.8.10.1-py25.exe, py2exe-0.6.9.win32-py2.5.exe 全部 down了下来,并且把之前的版本都替换了。再次试用 py2exe 打包,终于成功的获得了一个 App1.exe 和一堆相关的文件,总文件大小约14M 多,虽然也是很大,不过比起带 JRE 的程序来讲,还是小的多了,可以忍受。然后把程序拷贝到其他机器上运行,又出错了。错误信息是找不到 gdiplus.dll文件。神了,这种事情都发生。到机器上搜索了一下,这个文件在很多软件的安装目 录下都有,在 wxpython的目录下也有的。就是不知道为什么 py2exe 就是没 有 导出来,无语,看来这个版本也不是完美的。忍了,把 guiplus.dll直接拷贝到打包出来的目录下,然后在其他机器上运行,终于 OK 了,看来以后这 一步手动操作是避免不了的了。这次就算完整的走了一圈了。可是怎么看那个 exe 程序的 windows窗口外形的图标都感觉特别不爽。于是到自己的硬盘上找了一个好看的图标放到程序的目 录 下,然后修改 mypy.py 的内容如下:from distutils.core import setup import py2exesetup(windows=[{"script":"App1.py","icon_resources":[(1,"A0052345.ico")]}])执行命令 pythonmypy.py py2exe,OK,exe 文件的图标被成功地替换了。 呵呵,这个最简单的 GUI 程序就算出炉了。

    总结经过 这么一次折腾,终于对 python 以及 python相关的工具有了一些了解。总的来说,python是一种面向对象的解释性编程语言,近似于伪代码的语法,还 是非常易于学习的。而且作为一种黏合剂语言,它的用途也是非常的广 泛。不 过在IDE 方面还稍微有点弱,即便是几个商业版本的 IDE,也不是特别让开发者满意。不过我现在的目的就是可以拿来做一些小的带有界面的工具而已,也不需要太强大的IDE,暂时还是可以满足的。以后要找机会尝试一些 eclipse + pydev。毕竟, 以 eclipse 的强大,相信这个 IDE很有希望成为开源的 python IDE中的老大哥。

    参考资料:

    1. Python_百度百科:http://baike.baidu.com/view/21087.htm

    2. python: www.python.org

    3.wxpython: www.wxpython.org

    4. Boa Constructor:http://sourceforge.net/projects/boa-constructor/

    5. 啄木鸟 Pythonic开源社区: http://www.woodpecker.org.cn/

    6. Boa constructor 简介:http://blog.163.com/caodixy/blog/static /50940488200951031431510/

    7. Python应用发布技术:http://wiki.woodpecker.org.cn/moin/PyExe

     

     

     

    Python桌面应用程序开发的心得体会


     

    引言

    随着互联网技术的发展和智能终端设备的普及,软件应用逐渐从桌面程序向移动网络化迁移。虽然如此,一些工程应用的软件还是倾向于独立的桌面应用程序的形式。在这里,我将曾经曾经桌面开发的一些心得整理出来,与大家分享。希望能对专业人员有所借鉴,从中找到不一样的开发思路;对于初学者有所帮助,节约一些时间和精力。为什么这么说呢?我的专业是化学工程的一个分支——过程系统工程,在研究生阶段做项目开发过一些软件,走过一些弯路,也有一些收获。在学校最先学习的是用VisualStudio开发C程序,后来做流程仿真的项目,自学了C++,摸索使用MFC类库开发界面。这个项目开发得很辛苦,其中很多时候都在熬夜修改。一方面由于开发经验不足,另外一方面由于需求不明确,但是当时年轻精力充沛,印象中开发软件就是不停地改啊改。最终虽然完成了项目,但是对于开发过程很不满意。俗话说穷则思变,变则通。后来学习了Python语言,并摸索着用这个语言来做项目开发软件,有了之前的经验教训,后来的项目开发顺利了很多。总得来说,语言和工具的优势对于软件开发,尤其是人员很少的项目来说,还是很有帮助的。因此,将使用Python语言开发桌面应用过程中逐渐摸索得到的心得体会总结在这里与大家分享。


     

    成长历程

    从学校的教育之下,最先学会的就是使用微软的开发工具。

    开发环境是Visualstudio,主要类库是MFC


     

    后来自学Python语言,并用它用来开发桌面应用。

    开发环境为是Eclipse + PyDev

    主要用到的模块及工具组合为Python + SciPy + NumPy + wxPython + SWIG + MinGW+py2exe + I18N + NSIS + Subversion

    文档方面Epydoc + reStructureText +Sphinx

    测试方面doctest


     

    下面进行详细说明:

    SciPyNumPy进行数值计算方面的开发。

    wxPython进行界面方面的开发。

    SWIG包装已有的C代码作为动态链接库。

    MinGW提供的工具链来完成C代码的编译。

    py2exePython代码打包成独立的可执行二进制程序。

    I18N进行翻译满足不同的界面字符串变更需求。

    NSIS自动将程序打包为安装程序。

    Subversion进行版本控制,随时随地进行代码修改或者回滚到之前的功能。


     

    Epydoc生成模块的文档,用reST标记语言来写帮助文档,用Sphinx来组织文档。测试方面使用doctest模块。我们都知道文档和测试方面的工作非常重要,但是在实际项目开发中这些方面的投入会比代码开发少一些。在开发人员有限,有的时候可能就只有1名研究生在做开发,此时遇到导师和用户不断催促着要拿出软件的时候,这方面的时间精力的投入就更没法保障。


     

    需要指出,这里选择的模块都有替代。比如wxPython是一个优秀的跨平台的GUI框架,是wxWidgetPython绑定。GUI框架很多,其中同样优秀的还有QtPython绑定,pyQt以及pySidewxWidgetQt都是优秀的开发库,选择wxWidegt,还是Qt更多的出自个人爱好。比如我就不喜欢程序代码中有太多的大写字母,而Qt的类库中使用的大写字母比wxWidget多,因此我选择wxPython。虽然如此,但是客观的说,Qt的开发文档更丰富。

    同样版本控制软件也有很多,比如CVSMercurialGit等等。

    二进制打包程序有很多,比如与py2exe类似的PyInstallercx_Freeze等,也可以使用Pyrexshedskin先将Python代码翻译为C/C++代码,然后再编译为可执行的二进制文件。


     

    看到这里你应该已经能推测到本文覆盖的内容了,如果你还是比较感兴趣,那么欢迎继续阅读,如果涉及的内容,你都比较熟悉,那么大可不必再在这篇文章上花费时间啦。


     

    Python震撼

    最近正在研究FlashRIA,经人推荐到sf上面下载了一个开源免费ASIDE,叫做SEPY,不经意之间发现SEPY竟然是用Python写的!于是又下载了SEPY的源代码观摩了一下,结果更吃惊,惊叹Python做图形桌面应用程序代码竟然如此简洁,表现力竟然如此丰富,如果不是特别留意,绝想不到SEPY竟然不是Windows本地代码编写的软件。就此关注了一下Python桌面应用程序开发,这一下更加吃惊,发现现在使用python写的桌面应用程序已经非常丰富了,sf上面一抓一大把。然后还找到了Python的几个IDE,其中BOA给我极大的震撼,安装跑起来一看,俨然就是Delphi!可视化的托拽方式放置桌面控件,完全面向对象的编程。

    经过半天时间简单的了解,我得到了如下的结论:Python桌面应用程序的前景非常好,而相形之下,已经事实上宣判了Java做桌面应用程序的死刑!

    Java 做桌面应用程序,无法脱离JRE,这是一个很大的限制,你必须下载安装很大的一个JRE运行环境,并且一旦安装那就涉及到了JRE版本的问题,你基于JDK5.0开发的应用就没有办法在人家JRE1.4上面正常的跑。虽然JWS可以做到应用程序的Onlineupdate,但是终究无法做到JRE的online update!

    此外,Java的图形API严重分裂为Swing和SWT。Swing是一个扶不起的阿斗,bug很多,做出来的界面不伦不类,而且无法处理一些类似系统托盘之类和操作系统关系比较大的功能,并且性能非常糟糕,可以这样说,Java成也Sun,败也Sun;SWT要比Swing好得多了,但是可惜的是,Sun拒绝接受SWT,这样就使得SWT始终处在地下状态,得不到良好的发展。并且SWT也无法脱离JRE运行,而且API直接封装操作系统调用,很多地方有MFC痕迹,没有办法OO起来,受到很大的限制,但不管怎么说,SWT总算是给Java图形编程留下了一线希望。

    Python从一开始就是走SWT的思路,绝不愚蠢的自己去
     构建桌面组件,而是用C++编写组件,用Python去调用,这样的思路走到现在,已经有了良好的回报。现在Python编写的应用软件,可以脱离Pthon运行环境,单独编译为pyd(PythonDLL)和exe直接运行在Windows操作系统上。其速度表现和内存占用两个方面都要比Java好,就我现在的用下来的感觉,和VB开发桌面应用程序,或者和dotnet开发桌面应用程序处在同一个级别。

    其实现在Windows桌面应用程序开发处在一个告别旧的时代,但是又没有迎来新的时代的尴尬时期:MS力主推出的dotnetwinforms并没有取得预期中的成功,至今仍然使用者寥寥,推了那么多年都没有普及开来,并且又是注定的一个过渡时期技术,这些都说明winforms不会有更好的前途;而MS下一代桌面应用技术尚未拉开神秘的面纱,至于普及,也是n年以后的事情了;所以现在就很尴尬,经过几年Internet Application和dotnet winforms的喧嚣之后,传统的DesktopDeveloper又重拾昔日的Delphi利器,然而连Borl
     and自己都不再对自己保存足够的信心,而去搞Delphi.net去了,于是大家只好拿出来怀旧的Delphi7,VB6,VC6来应付桌面应用技术开发

    在有像BOA这样IDE的强力支持下,Python也当仁不让的加入了这一行列,以现在的桌面应用开发技术来说,Python开发效率,执行性能,学习曲线方面全面不落下风,甚至在很多方面有优势,特别是在跨平台这一点上,做到了Java多年都做不好的方面。由于Python的出色表现,我已经找不出来用Java编写桌面应用程序的任何理由了。我可以理直气壮的宣布,Java桌面应用开发已死!

    Python
     服务器应用开发方面,也同样非常强大,不过考虑到Java在服务器领域多年的成绩和诸多大公司的投入,显然还无法取代Java的地位,但是我可以预言,将来淘汰Java的必定是Python,而不是dotnet!

    随着RIA和RCP的流行,大家都在寻找下一代客户端技术。MS自成体系的一套自然也是其中之一,但是离问世还有几年,离普及就更遥远,在当前出现的所有的技术当中,我断定两种技术肯定会成为主流:

    Flash会成为RIA的主流;Python会成为RCP的主流!

    展开全文
  • 无论你是C 开发人员还是python开发人员,你都可以轻松的用pyui4win构建绚丽桌面应用程序。本站上有快速入门教程和很多开发实例。如果有什么建议和问题,请到本站论坛发帖或技术交流群。 官方网站: ...
  • 本文旨在通过一个简单的demo,介绍基于Python3、PyQT5的环境下开发桌面应用程序的一种方案,当然开发Python桌面应用程序不止是PyQT 这一种方案,还可以使用Python自带的Tkinter 来实现。 本文目录:1. 安装依赖...

    本文旨在通过一个简单的demo,介绍基于Python3、PyQT5的环境下开发桌面应用程序的一种方案,当然开发Python的桌面应用程序不止是PyQT 这一种方案,还可以使用Python自带的Tkinter 来实现。

    1. 安装依赖环境

    Eric6官网:http://eric-ide.python-projects.org/

    Eric6 依赖的组件必须先安装好,依赖组件列表如下:

    依赖:
    为了使用 eric6 你应该预先安装好下列组件:
    
    - Python 3.4.0 or better
    - Python 2.7.10 or better
    - Qt 5.3.0 or better (from The Qt Company)
    - Qt 4.8.0 or better (from The Qt Company)
    - PyQt 5.3.0 or better (from Riverbank)
    - PyQt 4.10.0 or better (from Riverbank)
    - QScintilla 2.8.0 or better (from Riverbank)
    

    组件太多,并且他们之间的依赖关系一言不合就出错,这里介绍个比较好的集成环境 Anaconda3 (64-bit) ,用它来安装Pyqt等可以比较省心。

    我本机的环境是:

    - Win7 64- Anaconda 3-5.2.0-Windows-x86_64
    - Python 3.6.5
    - pip 10.0.1
    - Eric6 18.10
    - Pyqt 5.9.2
    - QScintilla
    - PyInstaller 3.5.dev0
    

    其中QScintilla 是通过命令pip3 install QScintilla安装的。

    2. 安装Eric6

    依赖环境都搞定后,下载Eric6:
    Eric6稳定版官方下载地址:Eric6-18 :点我去下载
    在这里插入图片描述

    由于18.0版本开始没有了汉化包(或者是现在到了18.10版本都还没有出来?),我们可以用17.12里面的中文包来达到汉化的目标。
    Eric6-17.12:点我去下载
    在这里插入图片描述

    下载后,把18.10的主程序zip包解压,然后把17.12这个中文语言包解压,覆盖到18.10目录,然后在cmd进入这个18.10主程序包解压目录,执行下面的命令安装:

    pyton install.py

    安装完成后启动,双击eric6.cmd文件启动(我的因为是安装了Anaconda3,所以这个cmd文件所在路径为:C:\ProgramData\Anaconda3\Scripts),如果界面是中文的表示前面的汉化操作成功。

    这里有个小问题,双击这个批处理启动的时候,会一闪而过一个黑色的cmd窗口,不能忍,用一个简单的方法搞定… ,给这个文件创建个快捷方式发送到桌面,然后在这个快捷方式上右键属性,在运行方式那里把【常规窗口】改为 最小化
    在这里插入图片描述
    然后点应用-确定,下次双击启动就妥妥的看不到一闪而过的忧伤了…

    3. 配置Eric

    启动eric6后,界面如下,可以看到中文汉化成功:
    在这里插入图片描述

    首次启动,会自动弹出对配置对话框提示让你配置信息,如果你错过了也没关系,从Eric6的应用程序界面菜单[设置-首选项]进入,具体配置如下:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    从菜单的插件-插件存储库进入,安装jedi插件:
    在这里插入图片描述

    最后配置一下默认工作目录:
    在这里插入图片描述

    4. 创建窗口应用

    4.1 创建窗体UI

    在这里插入图片描述
    然后项目文件夹多了以下内容:
    在这里插入图片描述

    回到Eric6界面,左侧的源码Tab页签切换到GUI窗体页签,右键选择新建窗体

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    然后会引导你选择位置保存这个窗体文件,然后会自动进入QT Designer设计界面:
    在这里插入图片描述

    这个界面,就跟MFC的设计界面差不多,哈哈,左侧鼠标按住Push Button 按钮控件不放,拖动至中间的窗体中,然后双击这个控件,输入名字:测试按钮,再添加一个text文本控件,然后设置窗体名字:
    在这里插入图片描述

    4.2 实现代码逻辑

    在前面设计好ui界面后,保存代码并关闭QT Designer窗口回到Eric6界面

    然后在左侧ui文件上右键选择编译窗体生成ui界面组件对应的python代码:
    在这里插入图片描述
    这时会在项目目录生成一个Ui_Test.py 脚本文件,内容如下:

    # -*- coding: utf-8 -*-
    
    # Form implementation generated from reading ui file 'D:\andy\Rep\eric6\Test.ui'
    #
    # Created by: PyQt5 UI code generator 5.11.3
    #
    # WARNING! All changes made in this file will be lost!
    
    from PyQt5 import QtCore, QtGui, QtWidgets
    
    class Ui_dialog(object):
        def setupUi(self, dialog):
            dialog.setObjectName("dialog")
            dialog.resize(400, 343)
            dialog.setSizeGripEnabled(True)
    
    		# 定义的按钮
            self.pushButton = QtWidgets.QPushButton(dialog)
            self.pushButton.setGeometry(QtCore.QRect(130, 120, 75, 23))
            self.pushButton.setObjectName("pushButton")
    
    		# 定义的文本
            self.plainTextEdit = QtWidgets.QPlainTextEdit(dialog)
            self.plainTextEdit.setGeometry(QtCore.QRect(110, 170, 181, 31))
            self.plainTextEdit.setObjectName("plainTextEdit")
    
            self.retranslateUi(dialog)
            QtCore.QMetaObject.connectSlotsByName(dialog)
    
        def retranslateUi(self, dialog):
            _translate = QtCore.QCoreApplication.translate
            dialog.setWindowTitle(_translate("dialog", "测试应用名"))
            self.pushButton.setText(_translate("dialog", "测试按钮"))
            self.plainTextEdit.setPlainText(_translate("dialog", "点击按钮,改变此处文本"))
    
    
    if __name__ == "__main__":
        import sys
        app = QtWidgets.QApplication(sys.argv)
        dialog = QtWidgets.QDialog()
        ui = Ui_dialog()
        ui.setupUi(dialog)
        dialog.show()
        sys.exit(app.exec_())
    

    里面可以看到我们在窗体界面定义的两个控件:按钮、文本显示的对应python类中的变量名为:pushButtonplainTextEdit

    接着在左侧窗体视图的UI文件上右键选择生成对话框代码:
    在这里插入图片描述

    在这里插入图片描述

    选择对话框上两个控件所需的响应事件后保存:
    在这里插入图片描述

    然后切换到python源码页签可以看到生成了一个py类文件,里面自动生成了刚才在对话框中选择的两个响应事件的代码逻辑:

    # -*- coding: utf-8 -*-
    
    """
    Module implementing dialog.
    """
    from PyQt5.QtCore import pyqtSlot
    from PyQt5.QtWidgets import QDialog
    
    from .Ui_Test import Ui_dialog
    
     
    
    
    class dialog(QDialog, Ui_dialog):
        """
        Class documentation goes here.
        """
        def __init__(self, parent=None):
            """
            Constructor
            
            @param parent reference to the parent widget
            @type QWidget
            """
            super(dialog, self).__init__(parent)
            self.setupUi(self)
        
        @pyqtSlot()
        def on_pushButton_clicked(self):
            """
            Slot documentation goes here.
            """
            # TODO: not implemented yet
            raise NotImplementedError
        
        @pyqtSlot()
        def on_plainTextEdit_textChanged(self):
            """
            Slot documentation goes here.
            """
            # TODO: not implemented yet
            raise NotImplementedError
    
    

    我们修改下这个类:

    • 加上main方法
    • 修正引用的ui资源路径:把这里的 from .Ui_Test import Ui_dialog 那个点.去掉,否则会提示找不到这个模块
    • 修改按钮响应函数,改变文本控件显示的内容
    • 修改文本内容改变响应函数,弹出一个消息提示框

    修改完成的内容如下:

    # -*- coding: utf-8 -*-
    
    """
    Module implementing dialog.
    """
    
    import sys
    
    #这里我们提供必要的引用。基本控件位于pyqt5.qtwidgets模块中。
    from PyQt5.QtWidgets import QApplication
    from PyQt5.QtCore import pyqtSlot
    from PyQt5.QtWidgets import QDialog, QMessageBox
    
    from Ui_Test import Ui_dialog
    
     
    
    
    class dialog(QDialog, Ui_dialog):
        """
        Class documentation goes here.
        """
        def __init__(self, parent=None):
            """
            Constructor
            
            @param parent reference to the parent widget
            @type QWidget
            """
            super(dialog, self).__init__(parent)
            self.setupUi(self)
        
        @pyqtSlot()
        def on_pushButton_clicked(self):
            """
            Slot documentation goes here.
            """
            # 按钮按下,改变label标签的文本内容
            self.plainTextEdit.setPlainText(u"按钮触发,我改变了自己!")
        
        @pyqtSlot()
        def on_plainTextEdit_textChanged(self):
            """
            Slot documentation goes here.
            """
            # TODO: not implemented yet
            reply = QMessageBox.question(self, '信息', '文本框内容改变了',QMessageBox.Yes)
            
    if __name__ == '__main__':
        
        #每一pyqt5应用程序必须创建一个应用程序对象。sys.argv参数是一个列表,从命令行输入参数。
        app = QApplication(sys.argv)
        
        #QWidget部件是pyqt5所有用户界面对象的基类。他为QWidget提供默认构造函数。默认构造函数没有父类。
        dialog = dialog()
        
        #resize()方法调整窗口的大小。这离是400px宽248px高
        dialog.resize(400, 248)
        
        #设置窗口的标题
        dialog.setWindowTitle('我修改了标题')
        
        #显示在屏幕上
        dialog.show()
        
        #系统exit()方法确保应用程序干净的退出
        #的exec_()方法有下划线。因为执行是一个Python关键词。因此,exec_()代替
        sys.exit(app.exec_())
    
    

    然后点击Eric6应用的菜单:项目-属性,配置主脚本为我们这个Test.py
    在这里插入图片描述

    最后,通过菜单或者快捷键Ctrl+F2启动我们这个对话框应用:
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    点击按钮后:
    在这里插入图片描述

    5. 打包py脚本输出exe

    5.1 安装pyinstaller

    下载pyinstaller源码,源码github地址,有时候用git拉取下来网速很慢,这里可以从csdn下载我上传的最新版本(20181026更新的):点我下载20181026版本源码

    然后解压这个源码到某个目录,cmd进入这个解压目录,通过以下命令安装:python setup.py install
    在这里插入图片描述

    5.2 打包输出exe程序

    然后来到我们的.py源码目录,通过以下命令打包成exe文件:

    pyinstaller -F -w -i "D:\\xxxxxx\\app.ico" Test.py

    基础的命令格式是 pyinstaller [opts] [目标程序.py]

    可选的opts有:

    -F, –onefile 打包成一个exe文件。
    -D, –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)。
    -c, –console, –nowindowed 使用控制台,无界面(默认)
    -w, –windowed, –noconsole 使用窗口,无控制台
    

    -i "D:\\xxxxxx\\app.ico" 这个是更改exe的icon,如果不需要可以去掉。

    最后打包出来的exe有35MB大小… 因为把QT核心的dll文件打包在一起了,否则在没有安装python以及PyQt的电脑上无法运行的。

    更多内容请查看:pyinstaller官方说明


    参考资料:

    [1]: Pyqt5官方文档
    [2]: Python3官方文档
    [3]: 廖雪峰老师的Python3 在线学习手册
    [4]: 菜鸟学堂-Python3在线学习
    [5]: 其他所有分享过python学习填坑网友的经验

    展开全文
  • 使用Python开发windows桌面程序

    万次阅读 2018-05-08 11:00:00
    使用Python开发windows桌面程序一、开发前期准备 1. boa-constructor-0.6.1.bin.setup.exe #一个wxWidges的集成开发环境,简单如Delphi,可以直接拖拽控件,并且和其他集成环境不一样, #它不与集成开发环境的...

    使用Python开发windows桌面程序

    一、开发前期准备

              1. boa-constructor-0.6.1.bin.setup.exe    

               #一个wxWidges的集成开发环境,简单如Delphi,可以直接拖拽控件,并且和其他集成环境不一样,   #它不与集成开发环境的MainLoop冲突,用pythonwin,pyScripter都会冲突,典型报错就是运行第二次 #程序的时候,直接导致集成开发环境的强制退出,因为MainLoop冲突了

              2. wxPython3.0-win64-3.0.2.0-py27.exe

    wxPython2.8-win32-unicode-2.8.10.1-py26.exe   

              #wxPython库,提供了用C++写的windows组件库wx

              3. py2exe-0.6.9.win32-py2.6.exe      

              #打包发布工具,将python写的windows程序或控制台程序直接打包成exe可执行文件,供用户使用

              上述三个软件都是基于python2.6的,软件版本一定要配套,因为他们默认的安装路径和python版本有关系,否则会找不到相关库的存在。

    二、开发

            软件安装完以后,打开BOA,哇塞,拖控件真简单,而且属性啥的和Dephi差不多,你只要改改属性,代码会自动生成,它生成的控件很漂亮,记得以前用 

            C++6.0开发软件的时候,那个控件真丑,都需要我重新用控件库去绑定优化,现在不用了,BOA生成的控件,视觉效果相当好,开发软件速度相当快,再也

            不用为了软件界面而写太多代码,也不用为了生成一个小程序而生成了很多的文件,python开发的程序,没有多余的文件,而且文件很小。

    三、发布

           很多人都想在自己的软件程序写好以后,发布给其他人使用,一方面不希望自己的代码泄露,一方面以此显出一点成就感,呵呵,可以使用py2exe将你的

           windows程序打包发布了!当然,首先你得写个如下的setup.py文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    from distutils.core import setup
      import py2exe
     includes = ["encodings""encodings.*"]
     options = {"py2exe":
                 {   "compressed"1,
                     "optimize"2,
                     "includes": includes,
                     "bundle_files"1
                 }
               }
     setup(
         version = "0.1.0",
         description = "windows program",
         name = "winsetup",
         options = options,
         zipfile=None,
         windows=[{"script""myscript.py""icon_resources": [(1"PyCrust.ico")] }],
      )

    你可以在命令行下运行: python setup.py py2exe,那么你就会发现你的应用程序出现在dist文件夹里了,恭喜你,完成了windows应用程序的开发!

    作者:andyliulin 发表于 2017/10/26 15:10:52 原文链接 https://blog.csdn.net/andyliulin/article/details/78354128
    阅读:390
     
    [转]一步步用python制作游戏外挂

    一步步用python制作游戏外挂

    玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?(当然用外挂不是那么道义哈,呵呵),那我们就来看一下如何用python来制作一个外挂。。。。


    我打开了4399小游戏网,点开了一个不知名的游戏,唔,做寿司的,有材料在一边,客人过来后说出他们的要求,你按照菜单做好端给他便好~ 为啥这么有难度?8种菜单记不清,点点就点错,鼠标还不好使肌肉劳损啥的伤不起啊……


    首先要声明,这里的游戏外挂的概念,和那些大型网游里的外挂可不同,不能自动打怪,不能喝药不能躲避GM…… 那做这个外挂有啥用?问的好,没用,除了可以浪费你一点时间,提高一下编程技术,增加一点点点点点点的做外挂的基础以外,毫无用处,如果您是以制作一个惊天地泣鬼神不开则已一开立刻超神的外挂为目标过来的话,恐怕要让您失望了,请及早绕道。我的目的很简单,就是自动玩这款小游戏而已。


    工具的准备


    这篇文章需要您有Python基础,我不会讲解Python语法啥的~


    Python

    需要安装autopy和PIL以及pywin32包。autopy是一个自动化操作的python库,可以模拟一些鼠标、键盘事件,还能对屏幕进行访问,本来我想用win32api来模拟输入事件的,发现这个用起来比较简单,最厉害的是它是跨平台的,请搜索安装;而PIL那是大名鼎鼎了,Python图像处理的No.1,下面会说明用它来做什么;pywin32其实不是必须的,但是为了方便(鼠标它在自己动着呢,如何结束它呢),还是建议安装一下,哦对了,我是在win平台上做的,外挂大概只有windows用户需要吧?

    截屏和图像处理工具

    截屏是获取游戏图像以供分析游戏提示,其实没有专门的工具直接Print Screen粘贴到图像处理工具里也可以。我用的是PicPick,相当好用,而且个人用户是免费的;而图像处理则是为了获取各种信息的,我们要用它得到点菜图像后保存起来,供外挂分析判断。我用的是PhotoShop… 不要告诉Adobe,其实PicPick中自带的图像编辑器也足够了,只要能查看图像坐标和剪贴图片就好饿了,只不过我习惯PS了~

    编辑器

    这个我就不用说了吧,写代码得要个编辑器啊!俺用VIM,您若愿意用写字板也可以……

    原理分析


    外挂的历史啥的我不想说啦,有兴趣请谷歌或度娘(注:非技术问题尽可以百度)。


    看这个游戏,有8种菜,每种菜都有固定的做法,顾客一旦坐下来,头顶上就会有一个图片,看图片就知道他想要点什么菜,点击左边原料区域,然后点击一下……不知道叫什么,像个竹简一样的东西,菜就做完了,然后把做好的食物拖拽到客户面前就好了。


    顾客头上显示图片的位置是固定的,总共也只有四个位置,我们可以逐一分析,而原料的位置也是固定的,每种菜的做法更是清清楚楚,这样一来我们完全可以判断,程序可以很好的帮我们做出一份一份的佳肴并奉上,于是钱滚滚的来:)


    autopy介绍


    github上有一篇很不错的入门文章,虽然是英文但是很简单,不过我还是摘几个这次用得到的说明一下,以显示我很勤劳。


    移动鼠标


    import autopy

    autopy.mouse.move(100, 100) # 移动鼠标

    autopy.mouse.smooth_move(400, 400) # 平滑移动鼠标(上面那个是瞬间的)

    这个命令会让鼠标迅速移动到指定屏幕坐标,你知道什么是屏幕坐标的吧,左上角是(0,0),然后向右向下递增,所以1024×768屏幕的右下角坐标是……你猜对了,是(1023,767)。


    不过有些不幸的,如果你实际用一下这个命令,然后用autopy.mouse.get_pos()获得一下当前坐标,发现它并不在(100,100)上,而是更小一些,比如我的机器上是(97,99),和分辨率有关。这个移动是用户了和windows中mouse_event函数,若不清楚api的,知道这回事就好了,就是这个坐标不是很精确的。像我一样很好奇的,可以去读一下autopy的源码,我发现他计算绝对坐标算法有问题:


    point.x *= 0xFFFF / GetSystemMetrics(SM_CXSCREEN);

    这里先做除法再做乘法,学过一点计算方法的就应该知道对于整数运算,应该先乘再除的,否则就会产生比较大的误差,如果他写成:


    point.x = point.x * 0xffff / GetSystemMetrics(SM_CXSCREEN);

    就会准多了,虽然理论上会慢一点点,不过我也懒得改代码重新编译了,差几个像素,这里对我们影响不大~咱要吸取教训呀。


    点击鼠标


    import autopy

    autopy.mouse.click() # 单击

    autopy.mouse.toggle(True) # 按下左键

    autopy.mouse.toggle(False) # 松开左键

    这个比较简单,不过记得这里的操作都是非常非常快的,有可能游戏还没反应过来呢,你就完成了,于是失败了…… 所以必要的时候,请sleep一小会儿。


    键盘操作


    我们这次没用到键盘,所以我就不说了。

    怎么做?分析顾客头上的图像就可以,来,从获取图像开始吧~




    打开你钟爱的图像编辑器,开始丈量吧~ 我们得知道图像在屏幕的具体位置,可以用标尺量出来,本来直接量也是可以的,但是我这里使用了画面左上角的位置(也就是点1)来当做参考位置,这样一旦画面有变动,我们只需要修改一个点坐标就好了,否则每一个点都需要重新写一遍可不是一件快乐的事情。


    看最左边的顾客头像上面的图像,我们需要两个点才可确定这个范围,分别是图像的左上角和右下角,也就是点2和点3,。后面还有三个顾客的位置,只需要简单的加上一个增量就好了,for循环就是为此而生!


    同样的,我们原料的位置,“竹席”的位置等等,都可以用这种方法获得。注意获得的都是相对游戏画面左上角的相对位置。至于抓图的方法,PIL的ImageGrab就很好用,autopy也可以抓图,为什么不用,我下面就会说到。


    分析图像


    我们这个外挂里相当有难度的一个问题出现了,如何知道我们获得的图像到底是哪一个菜?对人眼……甚至狗眼来说,这都是一个相当easy的问题,“一看就知道”!对的,这就是人比机器高明的地方,我们做起来很简单的事情,电脑却傻傻分不清楚。

    autopy图像局限


    如果你看过autopy的api,会发现它有一个bitmap包,里面有find_bitmap方法,就是在一个大图像里寻找样品小图像的。聪明的你一定可以想到,我们可以截下整个游戏画面,然后准备所有的菜的小图像用这个方法一找就明白哪个菜被叫到了。确实,一开始我也有这样做的冲动,不过立刻就放弃了……这个方法查找图像,速度先不说,它有个条件是“精确匹配”,图像上有一个像素的RGB值差了1,它就查不出来了。我们知道flash是矢量绘图,它把一个点阵图片显示在屏幕上是经过了缩放的,这里变数就很大,理论上相同的输入相同的算法得出的结果肯定是一致的,但是因为绘图背景等的关系,总会有一点点的差距,就是这点差距使得这个美妙的函数不可使用了……


    好吧,不能用也是好事,否则我怎么引出我们高明的图像分析算法呢?


    相似图像查找原理


    相信你一定用过Google的“按图搜图”功能,如果没有,你就落伍啦,快去试试!当你输入一张图片时,它会把与这张图相似的图像都给你呈现出来,所以当你找到一张中意的图想做壁纸又觉得太小的时候,基本可以用这个方法找到合适的~


    我们就要利用和这个相似的原理来判断用户的点餐,当然我们的算法不可能和Google那般复杂,知乎上有一篇很不错的文章描述了这个问题,有兴趣的可以看看,我直接给出实现:


       def get_hash(self, img):

           image = img.resize((18, 13), Image.ANTIALIAS).convert("L")

           pixels = list(image.getdata())

           avg = sum(pixels) / len(pixels)

           return "".join(map(lambda p : "1" if p > avg else "0", pixels))

    因为这是类的一个方法,所以有个self参数,无视它。这里的img应该传入一个Image对象,可以使读入图像文件后的结果,也可以是截屏后的结果。而缩放的尺寸(18,13)是我根据实际情况定的,因为顾客头像上的菜的图像基本就是这个比例。事实证明这个比例还是挺重要的,因为我们的菜有点儿相似,如果比例不合适压缩后就失真了,容易误判(我之前就吃亏了)。


    得到一个图片的“指纹”后,我们就可以与标准的图片指纹比较,怎么比较呢,应该使用“汉明距离”,也就是两个字符串对应位置的不同字符的个数。实现也很简单……


       def hamming_dist(self, hash1, hash2):

           return sum(itertools.imap(operator.ne, hash1, hash2))

    好了,我们可以用准备好的标准图像,然后预先读取计算特征码存储起来,然后再截图与它们比较就好了,距离最小的那个就是对应的菜,代码如下:


       def order(self, i):

           l, t = self.left + i * self.step, self.top

           r, b = l + self.width, t + self.height

           hash2 = self.get_hash(ImageGrab.grab((l, t, r, b)))

           (mi, dist) = None, 50

           for i, hash1 in enumerate(self.maps):

               if hash1 is None:

                   continue

               this_dist = self.hamming_dist(hash1, hash2)

               if this_dist < dist:

                   mi = i

                   dist = this_dist

           return mi

    这里有一个50的初始距离,如果截取图像与任何菜单相比都大于50,说明什么?说明现在那个位置的图像不是菜,也就是说顾客还没坐那位置上呢,或者我们把游戏最小化了(老板来了),这样处理很重要,免得它随意找一个最相近但又完全不搭边的菜进行处理。


    自动做菜


    这个问题很简单,我们只需要把菜单的原料记录在案,然后点击相应位置便可,我把它写成了一个类来调用:


    class Menu:

       def __init__(self):

           self.stuff_pos = []

           self.recipes = [None] * 8

           self.init_stuff()

           self.init_recipe()

       def init_stuff(self):

           for i in range(9):

               self.stuff_pos.append( (L + 102 + (i % 3) * 42, T + 303 + (i / 3) * 42) )

       def init_recipe(self):

           self.recipes[0] = (1, 2)

           self.recipes[1] = (0, 1, 2)

           self.recipes[2] = (5, 1, 2)

           self.recipes[3] = (3, 0, 1, 2)

           self.recipes[4] = (4, 1, 2)

           self.recipes[5] = (7, 1, 2)

           self.recipes[6] = (6, 1, 2)

           self.recipes[7] = (8, 1, 2)

       def click(self, i):

           autopy.mouse.move(self.stuff_pos[i][0] + 20, self.stuff_pos[i][1] + 20)

           autopy.mouse.click()

       def make(self, i):

           for x in self.recipes[i]:

               self.click(x)

           autopy.mouse.move(L + 315, T + 363)

           autopy.mouse.click()


    这是本外挂中最没技术含量的一个类了:)请原谅我没有写注释和doc,因为都很简单,相信你懂得。

    作者:andyliulin 发表于 2017/10/26 11:51:41 原文链接 https://blog.csdn.net/andyliulin/article/details/78352027
    阅读:490
    展开全文
  • python进行桌面程序开发

    千次阅读 2019-05-30 15:02:31
    Python是一种面向对象、直译式计算机程序设计语言...Python适用在各种程序的开发中,目前最常用在Web程序,移动程序以及桌面程序开发中。 但是遗憾的是,python官方只提供了IDLE一个IDE,功能上却是是不敢恭维。市面...

    Python是一种面向对象、直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。

    Python适用在各种程序的开发中,目前最常用在Web程序,移动程序以及桌面程序开发中。

    但是遗憾的是,python官方只提供了IDLE一个IDE,功能上却是是不敢恭维。市面上的python IDE功能更是参差不齐,而且对控件的操作同样让人崩溃。相信很快就会解决这个问题。

    wxPython是一个开源的、跨平台的、使用C++开发的GUI工具库,目前支持Windows、大多数的Unix和Linux以及苹果Mac OS X以及手机操作系统iOS、Sybian、android等。但是wx同样没有官方的IDE。所以我们只能使用第三方IDE进行程序开发。

    在本文中我们使用Eclipse作为开发工具,本工具默认不支持Python,但是可以扩展语言。

    首先确定您已经安装了Python,目前最新版本是3.1,但是网络上的文档相对较少,所以建议安装2.6。同时安装GUI控件库wx-2.8-msw-unicode 。

    点击Eclipse菜单 Help>Install New Softwares.在Work with项中增加一个pathon http://pydev.org/updates  点击下一步选择PyDev进行安装(要花一段时间,等不及的要自己去下安装包)。

    安装完成后,我们还需要进一步设置:Window>Preferences?Pydev>Interpreter-Python>New..>选择python安装路径中的python.exe。随后全选确定即可。

    这样,python开发桌面程序就完成了。进入Eclipse主界面,File>New>Otther>Pydev>Pydev Project

    创建好一个项目之后,在左侧Pydev package Explorer中New>Pydev Package>随便起个名字>进入了开发界面,我们可以看见,上面神马都没有。

    输入:

     

    保存 运行,一个窗口界面就出现了,虽然上面神马都木有。

    接下来我们开始探索wx中的控件。

    展开全文
  • 本节课会介绍Python的GUI(图形用户界面)编程,用Python也可以写出漂亮的桌面程序,建议此次课程大家稍作了解不要浪费太多时间,因为没有哪家公司会招聘以为Python程序员开发桌面程序吧? 学完此次课程,我能做...
  • 一个wxWidges的集成开发环境,简单如Delphi,可以直接拖拽控件,并且和其他集成环境不一样, #它不与集成开发环境的MainLoop冲突,用pythonwin,pyScripter都会冲突,典型报错就是运行第二次 #程序的时候,直接导致...
  • 基础打包:进入需要打包的py的目录,输入 pyinstaller -F baseline.py pyinstaller -F baseline.py 在打包py目录下,会有一个dist,里面有一个exe文件 ...这样的打包的程序在运行时候,就不会...
  • python编写windows桌面程序(小Demo)

    万次阅读 2016-12-22 17:07:47
    前段时间,由于公司业务需求,需要导出腾讯云中的对象存储服务bucket下指定文件夹所有apk文件的下载地址和一些文件夹创建的操作,但因文件较多,人工去遍历肯定不可取,因此就想着撸个python桌面程序。功能比较简单...
  • 1.如果没有安装pycharm 请去官网安装 2.废话不多说,直接上图, ... name: 自己随便定义 program: 是PyQt5_tools的路径,如果没有安装PyQt5, ...然后在Lib\site-packages\pyqt5_tools\找到designer.exe文件,添加到...
  • python进行桌面程序开发(GUI),开发环境搭建本主要是介绍开发软件和下载地址,具体安装和使用,请移步度娘。第一步:安装python 安装地址:http://www.python.org/download/ 第二步:安装pycharm(python IDE开发...
  • Python+WebKit+HTML开发桌面应用程序

    万次阅读 2017-11-13 14:07:58
    Python+WebKit+HTML开发桌面应用程序 前言 软件开发工作多年,虽然写了很多文档资料,但竟然没有在CSDN上写过一篇博客。前段时间与一个朋友聊天,他提到,把文档资料写在自己的电脑上,与放到博客上有很大的不同,...
  • 在工作中常常需要写些桌面应用程序,一直都是用的MFC,但涉及到跨平台就有问题了,...暂定python桌面应用开发框架【注意版本要统一】: 1、boa-constructor-0.6.1.bin.setup.exe # 一个 wxWidges 的集成开发环境 2
  • 最近想开发一套Netty网关日志分析程序,用来分析设备的原始数据。因为网关是放在linux服务器上,之前查看日志是通过Xftp工具将日志下载到本地,然后找到对应的日志数据进行分析。 对于运维人员来说,上述的日志分析...
  • 收藏-python操作windows桌面应用 自动化解放双手地址 地址 地址
  • Python 提供了多个图形开发界面的库,本篇博客为大家介绍Python GUI 库中原生模块Tkinter: Tkinter:Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下...
  • 准备:1、安装python,安装版本为2.7.14,并将python添加至系统变量。2、安装pywinauto:进入python安装目录,进入Scripts目录下,shift+右键,点击在此处打开命令窗口,输入命令:pip install pywinauto,系统将自动...
  • 1. 这本书对Python的知识点的描述很详细,而且排版看的很舒服. 2. 几个例题:假装自己从零开始学,将一些有代表性、有意思的例题抽取出来. 3. 还有自己对一部分课后复习题,全部课后上机实践题的解题思路
  • 本节课会介绍Python的GUI(图形用户界面)编程,用Python也可以写出漂亮的桌面程序,建议此次课程大家稍作了解不要浪费太多时间,因为没有哪家公司会招聘以为Python程序员开发桌面程序吧? 学完此次课程,我能做...
  • 这几天有空就做做python,下面是我收集的一些代码,大家可以看看,python真的很有有趣!1。生成随机数 import random #这个是注释,引入模块 rnd = random.randint(1,500)#生成1-500之间的随机数 2。读文件 f = ...
1 2 3 4 5 ... 20
收藏数 53,253
精华内容 21,301
关键字:

python桌面程序