Python有开发桌面程序的开源项目吗? 想参考一下

2013-10-07 01:17:50 +08:00
 cchange
Python是脚本语言,是否适合开发桌面程序呢? 工业控制和科学计算用Python不错,当然前提是能驾驭,现在请问大家在win32上有没有比较好的Python项目呢,项目和工艺不限,树莓派上有GUI项目,但貌似不太好参考。

同时请问大家,在win32/.64上 大家是怎么使用Python的呢?
20250 次点击
所在节点    Python
32 条回复
passluo
2013-10-07 01:24:52 +08:00
wxpython
dropbox就使用了它…(部分)
nine
2013-10-07 01:24:54 +08:00
本来极力推崇PyQt的
最近要做一个桌面项目
装了一下PyQt for QT5
打个hello world 包几十m 我疯了

于是试了一下 aauto,感觉很好
是基于lua的,推荐
likai
2013-10-07 05:55:53 +08:00
@nine 快手是基于lua的?
loading
2013-10-07 07:06:56 +08:00
@nine 感谢推荐。aauto可以和python混用吧,可惜只能在windows啊
davepkxxx
2013-10-07 08:27:40 +08:00
PyQt 最近在用这个写一些桌面应用。
pango
2013-10-07 10:58:29 +08:00
搭车问一下python做的桌面程序打包成exe时怎么才能减小体积?
RelativeLayout
2013-10-07 12:03:09 +08:00
kivy
rns
2013-10-07 16:43:01 +08:00
对笔记软件/编辑器有兴趣的话可以看看:

Zim: http://zim-wiki.org/
ReText: http://sourceforge.net/p/retext/
Mikidown: https//github.com/rnons/mikidown

Zim可以在windows下运行,用了PyGtk。mikidown是我写的,用的PyQt。
rns
2013-10-07 16:44:46 +08:00
(少了个冒号)
Mikidown: https://github.com/rnons/mikidown
Sherlockhlt
2013-10-07 21:35:22 +08:00
@rns

mikidown我在用,很不错的说,很想不到居然能看到作者
不过在ubuntu下css没办法显示,我后来改了源码才能显示
rns
2013-10-07 21:58:38 +08:00
@Sherlockhlt 我以前在Ubuntu下试过,没发现CSS的问题。能讲讲你改了哪个地方吗?
Sherlockhlt
2013-10-07 22:17:25 +08:00
* 运行mikidwon的时候,发觉报错:

'QToolBar' object has no attribute 'visibilityChanged'

查看文档发觉visivilityChanged是个函数而不是一个属性对象,于是把报错行注释掉,重写安转,成功运行。

* 缩进的问题:作者把缩进设置成4个像素,我想本意应该是设成四个空格,故改为

self.notesEdit.setTabStopWidth(48) # 1space = 12px Sherlock

* CSS方面我的解决方法是在markdown解析成的html数据前面加上css指定。由于qt必须用绝对地址指定css,在这里我弄了很久才从[stackoverflow](http://stackoverflow.com/questions/2304952/qwebview-not-loading-external-css)上面看到解答。


def parseText(self):
htmltext = self.notesEdit.toPlainText()
return '<HEAD><link rel="stylesheet" href="file:///home/sherlock/mikinotes/github.css" type="text/css"></HEAD>' + md.convert(htmltext)
Sherlockhlt
2013-10-07 22:18:05 +08:00
@rns

楼上是我当时搭建写的笔记
rns
2013-10-07 22:46:02 +08:00
@Sherlockhlt 非常感谢!
rns
2013-10-08 00:10:24 +08:00
@Sherlockhlt 刚才看了一下代码,第1、3两个问题以前的commits里已经解决了。

第2个问题,我之前确实没意识到是“设置成4个像素”。但你的解决方案并不完美,12px是字体大小,表示的是高度;而一个space的宽度是多少,很难说清楚,与字体有关?
因此在setTabStopWidth(48)后,一个tab并不等于4个空格的位置。
Sherlockhlt
2013-10-08 00:27:44 +08:00
@rns
确实和字体有关,12px其实有点大,改成10px可能会好点
我是一年前开始用的,没想到问题后面都解决了
第三个问题,我的方法会导致live mode时不时preview就跳到页首,现在的版本也会有这个问题吗?
rns
2013-10-08 01:18:14 +08:00
@Sherlockhlt 嗯,我时不时的会commit两下,比一年前更稳定。现在的版本没有这个问题。
nine
2013-10-08 03:48:01 +08:00
@likai 快手基于LAScript LAScript类似于lua的一个子集
调用的是windows api 打包之后很小巧
还可以用htmlLayout做界面,十分方便

@loading 和python混用的话一点意义都没有,图形本身就是基于windows api的,又有标准库、协程等存在。调用python还要打一个大大的python.dll在调用其他库又要n大的dll,还不如直接PyQt

事实上我们做的东西很少会跨平台,如果短期内没有跨平台需求,不如考虑先用某个单平台的优秀技术快速实现和迭代。
真正开发水平ok的话,学习一个新技术也是很快的

我一直做web的,没做过GUI,只看过一段时间PyQt,写过一两个demo
只研究aauto 4、5天就搞出一些东西来了
nine
2013-10-08 03:48:19 +08:00
AAuto编程语言
====================================================
AAuto是专用于桌面软件快速开发的新一代混合型编程语言,
兼具动态、静态语言优势,语法更可兼容大部分流行语言,学习成本低,开发速度快,并永久免费。
AAuto是一种动态语言,但是同时支持静态类型开发,下面的代码定义了一个结构体,在这个结构体中可以象静态语言一样使用静态类型,
又可以象动态语言一样使用动态类型;

//定义类
class POINT {
  int x; int y; //静态类型
  func = function(){
    //动态类型
  }
}

这种全新的混合编程语言开创了一种全新的编程方式,
AAuto拥有动态语言轻便、灵活、快速开发的特性,同时又可以象静态语言一样强大,直接支持原生DLL,
方便的声明API函数,并且可以将AAuto的函数对象转换为C语言兼容的函数指针,即使是外部EXE进程中的函数,
也可以使用一句代码声明为普通的AAuto函数对象( 原生call支持 )。

AAuto虽然小,但是支持的接口很丰富,
可支持标准DLL的stdcall,cdecl,thiscall等调用约定,可以支持C++导出的类对象,
可以支持com静态动态双接口,象VBS一样原生支持com对象。

AAuto还可以直接嵌入汇编机器码,C语言,Java,PHP,C#,Python,Javascript,VBScript......等等数量众多的第三方编程语言,
方便的互调函数,并且这些调用第三方语言的功能模块都是使用AAuto实现,并且开放源码。混合型语言让我们可以体验到激动人心的全新编程方式。

AAuto可以将硬盘目录,硬盘文件一键嵌入EXE文件,将全部程序包含所有资源生成独立的绿色EXE文件,
所有文件读写的相关函数自动支持,无需更改代码,AAuto制作的程序不需要安装程序,
也不需要释放DLL运行库,AAuto制作的程序都是免安装绿色软件。

AAuto语法优美,最大兼容流行的C系,Pascal语法,并且可以自定义一套自己的语法。
有其他语言基础的可以轻松上手,学习AAuto以后学习其他编程语言更可事半功倍,AAuto不象其他的一些编程语言,
在语法风格,函数命名上都保持了良好的兼容性、通用性。

AAuto原生支持多线程开发,复杂的多线程开发在AAuto中变得非常简单,
AAuto所有对象先天线程安全,自动解决所有并发问题,标准库提供大量简化多线程开发的辅助支持库。
例如 thread.command 实现的线程命令订阅模式,为多线程软件开发带来很大的方便。

AAuto的标准库基本使用纯AAuto源码实现,并且全部开源,
标准库提供了大量的简化编程的常用函数,涉及到软件开发的方方面面,极大的简化了桌面软件开发过程。


软件界面快速开发
====================================================
AAuto提供web.form支持库( 开源 ),
可以创建web窗体加载网页创建web风格的软件界面,网页与本机代码可以直接交互,
在快手工程向导里,就提供了 WEB UI 的模板。在使用web窗体时,你能感受到AAuto这种混合语言带来的巨大方便,
较之传统编程语言,AAuto 可以更快更加方便的创建 WEB UI 程序,在AAuto自带的范例中,就有一个多窗口浏览器的范例,
仅仅使用了一页300行源码就实现了一个功能较完整的多窗口网页浏览器,可以看出使用AAuto极大的简化了Web相关开发技术。

另外,AAuto提供了web.layout支持库,封装了轻量快速的界面引擎HTMLayout,
可以使用传统的HTML,CSS技术,更加方便的实现漂亮的界面,而且运行,响应速度极快,官方也提供了大量HTMLayout的范例,教程。
当然,使用AAuto开发传统界面也非常的方便,AAuto提供可视化开发工具,可以象VB一样(实际上比VB更简单)的通过拖拉控件创建程序。


快手 - AAuto集成开发环境
====================================================
快手是用于AAuto程序开发的可视化集成开发环境(IDE)。
面向个人或企业用户,商业或非商业应用,本软件永久免费。快手内置AAuto标准库,
以及大量范例全部开源。AAuto用户可以自由使用无需付费,使用AAuto制作的软件产品不需要声明使用AAuto开发,免费使用AAuto无任何附加条件。


AAuto开发历程:
====================================================

AAuto始于2005年开发,
2007年12月份完成第一个内测版本。
2010年2月份发布第一个公测版本。
2011年10月份发布1.0正式版,AAuto标准库开发完成。
2012年12月份发布2.4版本。

关于LAScript:
====================================================
AAuto基于LAScript,LAScript始于2004年开始研发,基于开源项目lua,
LAScript于2004年随模拟精灵推出,于2005年广泛流行。

当时的一篇评论文章《你必须知道的10种国产编程语言》如此评价LAScript:
“作为一种准开发工具,模拟精灵有着非常广泛的应用,特别在初学者中十分流行。
其携带的LAScript语言也随着模拟精灵的广泛传播而逐渐流行。 LAScript作为一个基于Lua语言的子语言,
已经可以称得上一个真正的现代编程语言,具备了结构化编程和面向对象编程的诸多特性。”

注:LAScript是一种纯脚本语言,
脚本语言仅支持动态类型,并不支持静态类型编程,不能直接用于原生开发、不能独立编写应用程序。
AAuto的重要意义在于让动态语言走出了脚本语言的阴影 -- 在国外只是一个口号时,AAuto已成功实践混合型编程语言。


关于Lua:
====================================================
Lua 是一个小巧的脚本语言, 其设计目的是为了嵌入应用程序中,
从而为应用程序提供灵活的扩展和定制功能Lua并没有提供强大的库,这是由它的定位决定的。
所以Lua不适合作为开发独立应用程序的语言( 中文简介 来源:百度百科 )。

Lua是基于MIT协议的开源项目,
可以免费并自由使用于商业或非商业项目, 可以免费并自由使用于开源或闭源项目。
被授权人有权利使用、复制、修改、合并、出版发行、散布、再授权及贩售软体及软体的副本。
被授权人可根据程式的需要修改授权条款为适当的内容。

注:LAScript,AAuto内核非开源项目,
MIT无传染性,大家使用AAuto不受MIT协议约束。

Lua license( http://www.lua.org/license.html )
====================================================
Lua is free software distributed under the terms of the MIT license reproduced here.
Lua may be used for any purpose, including commercial purposes, at absolutely no cost. No paperwork, no royalties,
no GNU-like "copyleft" restrictions, either. Just download it and use it.

Lua is certified Open Source software.
Its license is simple and liberal and is compatible with GPL. Lua is not in the public domain and PUC-Rio keeps its copyright.

The spirit of the Lua license is that you are free to use Lua for any purpose at no cost without having to ask us.
The only requirement is that if you do use Lua, then you should give us credit by including the copyright notice somewhere in your product or its documentation.
A nice, but optional, way to give us further credit is to include a Lua logo and a link to our site in a web page for your product.

The Lua language is entirely designed, implemented,
and maintained by a team at PUC-Rio in Brazil. The implementation is not derived from licensed software.

Before Lua 5.0, Lua used its own license, which was very close to the zlib license and others, but not quite the same.
Check the source distribution for the exact license text for each version before Lua 5.0. Nevertheless,
if you wish to use those old versions, you may hereby assume that they have all been re-licensed under the MIT license as described above.

Copyright ? 1994–2012 Lua.org, PUC-Rio.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

Copyright ? 1994–2012 Lua.org, PUC-Rio.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
likaci
2013-10-08 08:47:29 +08:00
不知道快手和ahk对比有什么优劣

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/84734

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX