充分体验到知识循环再用的好处,原本对Python、wxWidgets没有接触的,天黑天亮之间,已经作了一个半成品的桌面程序出来。
1.选型
通常选型之后,都会迫切的告诉别人自认为正确的原因,这时候路过的人就比较不幸了。
我选Python和wxWidgets,是因为.......
因为是发布到网上的小程序,要它很小,Java和.Net这两个还算当红但要装虚拟机的笨家伙最先out了,而Python在py2exe之后压成rar才3M,如果有心思还可以弄得更小。
选wxWidgets是因为它可以通行于Windows,Linux两个位面,另外Fox也能通用,不过wxWidgets是像SWT一样用Native Widgets的,在WinXP上比较好看。
用Python而不是C++,是为了快速开发。当然,心底里其实是贪好玩。本来喜欢Ruby的语法更纯洁一些,可惜wxRuby已经太久没更新了。
2.wxWidgets
所谓GUI框架,万变不离下面几点:
1.框架结构
拿个HelloWorld一看就懂,又是Application->Frame->Menu 的标准架构。
2.wxWidgets用法
来来去去还是Text框,选择框,按钮几个老面孔,在wxPython上把wxPython2.6-win32-docs-demos-2.6.1.0.exe档下载回来,就有C++版本的API手册与python版本的每个widgets的Demo Code。
3.控件与页面的Layout
一种方式是C# Winform和Swing那样在程序里生成组件和layout,经历过SWT手写代码画页面的折磨,再看到一层又一层的Container代码(wxWidgets里是Sizer)已经不觉得麻烦了。也有所见即所得的工具如BOA,不过毕竟没有Visual Studio for WinForm那么好,难以真正使用。
一种是像Delphi, VC或未来的XAML那样把控件和layout记在XML文件里。但我没有用。
4.事件分发机制
像 EVT_BUTTON(self,ID_UPLOAD, self.onUpload)这样的代码,挺简单的。
可见,只要有过GUI编程的经验,再学wxWidgets 很容易。
参考书:《Cross-Platform GUI Programming with wxWidgets》
《wxPython in Action》
3. Python
手边放一本Python的参考书,只要对动态语言有点感性认识,对着Sample Code能能猜就猜,猜不到就拿chm版的参考书来索引,也很容易入门。
最难的地方发生在遍历目录,那时候已经有点困了:
for root, dirs, files in os.walk('C:/projects/'):
print sum(getsize(join(root, name)) for name in files)
这是什么见鬼语法阿!!
原来os.walk('C:/projects") 的返回值是一个tuple。在C++ Boost库中接触过这个概念,平常函数都只能返回一个值,而tuple可以让你返回多个(这样就不用利用传址的参数来返回啦),所以就有了for root,dir,files in os.walk()这样的句子。
还有 print join(root,name) for name in files,原来python还有这种把闭包写在for的前面的简写法。
IDE最后还是用了Eclipse的插件PyDev,毕竟Eclipse看着比较舒服,其他编辑器做得那么难看,怎么还好意思收钱。
4.美化界面
因为wxWidgets用的是native widgets,不像Delphi,C# 和Swing有专门的look and feel 美化控件,所以美化的主要方式是为Toolbar和Button配上好看的图标,还有修饰整个软件的配色。
推荐Tango一个图标库:http://tango-project.org/ to make open source software beautiful...说出了我的心声啊,"顶尖儿的程序员必有完美主义艺术家之倾向。",目前的图标还不多,迅速更新中。
分享到:
相关推荐
Python 桌面开发主要涉及使用 Python 语言创建在 Windows 操作系统上运行的应用程序。在本手册中,作者分享了使用 Python 进行桌面应用开发的流程,主要包括以下几点: 1. **开发前期准备**: - **boa-constructor...
PyQt6图书管理系统 采用最新的PyQt6技术实现 数据库Mysql,操作数据库技术PyMysql。 时代的K速发展的今天造就了如今信息化中国的局面,在经济上,我国获得了经济强国的荣耀称号,在 外交上我国在与国际间的交流沟通正在...
本文将详细介绍Python界面程序开发应用技术,包括Python界面开发的综述、企业级应用开发的相关优势以及开发选择。 首先,Python界面开发不仅限于标准库,还包含了诸多第三方库如wxPython、Twisted和Python图形库等...
对于初学者来说,这是一个很好的实践项目,可以帮助他们提升Python编程和GUI开发的能力。而对于有经验的开发者,这个项目则提供了一种创新的娱乐应用实例,可能激发他们对桌面应用程序设计的新思路。
【Python桌面动画挂件】是一种使用Python编程语言创建的桌面应用程序,它允许用户在桌面上展示类似GIF的动态图像,通常称为桌面挂件或桌面宠物。这些挂件不仅可以为桌面增添趣味性,还能根据用户的个性化需求进行...
【Python桌面助手x64】是一款基于Python编程语言开发的64位桌面应用程序,它旨在为用户提供方便快捷的快捷方式管理服务。这款工具允许用户高效地组织和访问他们的桌面资源,包括文件夹、网页链接、应用程序快捷方式...
用Python tkinter 开发的桌面便签程序 支持拖动、新建、保存、多种颜色主题等丰富多样的功能 详细教程见 https://blog.csdn.net/weixin_48448842/article/details/118046643
在现代软件开发中,桌面应用程序仍然占据着一席之地,特别是在需要强大本地计算能力或离线功能的场景下。Python,作为一个多用途且强大的编程语言,结合HTML和PyQT5库,可以创建出功能丰富的桌面应用。PyQT5是Python...
pyui4win最初是想将duilib扩展到python,这样可以用python快速开发绚丽桌面应用。但在开发过程中,发现duilib中存在很多bug和不足。现在pyui4win解决了duilib中设计器的一些bug,有些是非常严重的bug,比如几处经常...
通过这个项目,不仅可以提升Python编程技能,还能学习到GUI设计和交互式应用的开发经验,对于想要深入Python桌面应用开发的初学者来说,是一个很好的实践机会。在实际操作中,可以参考现有的开源项目,逐步理解和...
# 2014.10.15 更新了memo.zip, 网盘的exe:修复:1.隔日启动不能正常加载json,加入:1.隐藏任务栏图标,2....即可用作桌面图标 程序在ubuntu测试基本没发现什么错误 注:第一次运行,由于没有便签内容,所以有可
Python作为一种多用途编程语言,不仅在Web开发和数据分析领域表现出色,同样也能用于创建功能丰富的桌面应用程序。本文将详细介绍如何使用Python及其丰富的库和框架来设计、开发、测试和部署桌面应用程序。 Python...
使用 Python 开发 Windows 桌面程序 资料 本文将详细介绍使用 Python 开发 Windows 桌面程序的整个流程,从开发前期准备到发布软件,涵盖了相关的知识点和技术细节。 一、开发前期准备 在开发 Windows 桌面程序...
一个简单的Python桌面程序可能包括一个“点击退出”按钮,代码如下: ```python import tkinter as tk def on_click(): root.quit() root = tk.Tk() button = tk.Button(root, text="退出", command=on_click) ...
这个实例资源利用了Python的pywebview库和前端框架Vue.js,将Web技术引入到桌面环境中,使得开发者可以利用丰富的Web开发工具和经验来构建桌面应用。 首先,我们来看`pywebview`。pywebview是一个跨平台的库,它为...
基于python开发的一个桌面宠物源码.zip基于python开发的一个桌面宠物源码.zip基于python开发的一个桌面宠物源码.zip基于python开发的一个桌面宠物源码.zip基于python开发的一个桌面宠物源码.zip基于python开发的一个...
标题中的“使用-python-开发-windows-桌面程序”指的是利用Python编程语言来构建Windows操作系统上的桌面应用程序。Python是一种高级编程语言,以其简洁的语法和强大的功能而受到开发者喜爱。在Windows平台上,...
以上就是 Python 桌面宠物开发中涉及的主要知识点,从基础的 GUI 编程到高级的多媒体处理和人工智能,每一个环节都为桌面宠物增加了独特的魅力和实用性。通过学习和实践,你可以创造出属于自己的个性化的桌面宠物。
【Python桌面助手x32.rar】是一个基于Python编程语言开发的桌面应用程序,主要功能是提供一个便捷的快捷方式管理平台,允许用户快速访问和管理电脑上的文件夹、网页链接以及各种快捷方式。这个桌面助手旨在优化用户...
项目概述:本项目是一款基于Python语言的桌面自动化工具,结合了PyAutoGUI和OpenCV库,共包含26个文件。其中,Python源代码文件(.py)有9个,配置文件(.xml)6个,数据表格(.xls)3个,版本控制忽略文件(....