15 个 Python 开源项目,使用 PyQt 做小型桌面应用!

点击上方蓝色小字,关注“涛哥聊Python

重磅干货,第一时间送达

Mozzarella Ashbadger:使用选项卡升级你的浏览体验

Mozarella Ashbacker是 络浏览领域的最新革命!返回上一页!打印!保存文件!帮助列表!跟其他浏览器一样的话纯属巧合。

Calculon:用PyQt写的桌面计算器

一个使用Python在PyQt中实现的简单计算器应用程序。用户界面是在Qt设计器中设计的,计算器操作是使用简单的基于堆栈的逻辑实现的。

7、摄像头

NSAViewer-有人正看着你

使用此摄像头快照应用程序,你可以拍摄摄像头当前正在查看的内容的照片。使用QtMultimedia多媒体框架处理与相机的所有交互,并支持多个摄像头(如果有的话)。

你还可以弹出一个浮动在顶部的视频窗口。

这个应用程序非常简单,但是演示了在PyQt中创建无装饰窗口。删除窗口装饰会导致不能拖动窗口,因此我们必须自己重新实现这种行为。

10、画图

Piecasso-PyQt中的桌面绘画应用程序

用Piecasso来表达自己吧,唯一一个以派的现成图片为特色的绘画程序。Piecasso是windows95中画图程序的一个克隆,在此之上做了一些增减。这个程序的特点是有标准的工具,包括钢笔,刷子,填充,喷雾罐,橡皮擦,文本和一些形状。

代码注释

事件处理

所有工具都是用嵌套的事件处理程序实现的,这些处理程序会根据需要转发事件。这允许在具有共同行为(例如形状绘制)的工具之间重复使用大量代码。添加选择区域动画需要一个计时器(更新爬行蚂蚁),这增加了一些代码复杂性。

染色法

从性能的角度来看,这是这个应用程序中最棘手的部分。直接检查像素太慢(整个画布填充时间约为10秒)。在Python中实现这一点的大多数代码都使用numpy,但我不想单独为此引入依赖关系。

通过将图像导出为bytestring,然后向下采样到每像素一个布尔字节(用于匹配/不匹配)来简化比较循环,可以达到合理的速度。

虽然这个搜索填充算法仍然相当愚蠢。

11、解压缩

7Pez-有史以来最好/最差的解压应用程序

用一只猫解压你的文件。将zip文件拖放到悬空喵咪上,填充它手臂处。按下头部将会解压缩你的文件到当前目录。

当你打开应用程序时,猫咪的手臂处是空的。

按下猫的头,文件就会解压了。

12、翻译

Translatarrrr-从任何语言到海盗语的即时翻译

从任何语言翻译(谷歌翻译支持)到海盗语。它调用了远程api http://api.funteransations.com 将英语翻译成海盗语,以及谷歌的一个非官方的Python包装器将其他语言翻译成英语。

所以总结下来,这个程序用处不大。

13、天气

Raindar-PyQt内置的天气预 应用程序

获取每日天气和15小时预 。数据来自免费的天气预 API https://openweathermap.org/

15 个 Python 开源项目,使用 PyQt 做小型桌面应用!
Ronery2

配置选项允许1次发1张或3张,允许3、5或无限轮。

代码注释

卡片处理

这里使用的方法是将每个可以放置卡片的地方作为一个“堆栈”对象来处理它当前持有的卡片。每个堆栈负责其堆栈上卡片的布局。

堆栈还负责接受/拒绝尝试在其上放置卡的行为。有些堆栈,如交易堆不接受任何降牌。其他的特殊堆有特定的规则。

在大多数情况下,除了底部的“在玩”牌堆外,牌堆上的任何牌都没有联系。底部的卡片具有父子关系,允许一次拖动多张卡片。

结束动画

最后的结束动画是独立的,并且发生在比赛时间之外,所以第一个想法是有一个单独的假事件循环,使用QApplication.processEvents勾选。但那实现起来有点恶心。

相反,动画是由QTimer处理的,QTimer通常在播放过程中处于空闲状态,一旦被触发就会反复ping一个动画前进投放。这会移动卡片(假装是“重力”,反弹)以及在它们离开游戏区域后重新堆叠它们。使用正常的堆叠代码就可以实现重新堆叠,这样它们就可以堆积起来。最后一个难题是阻止用户的交互,否则卡片仍然可以被抓取和丢弃。实现这一点的最简单方法是在整个窗口上放置一个对象,该对象被设置为捕获(并放弃)所有鼠标单击。

最后,想创建自己的应用程序吗/h1>

如果你觉得这些 app 有些太过简洁,希望了解更多关于 PyQt 的信息,请参阅PyQt5 教程[19],它涵盖了使用PyQt构建app从前到后所需的所有知识。

你也可以在这个 站上找到关于这些“小型app”的评论。

扩展

如果你想了解更多,可以移步这里观看更多的官方示例:https://diagrams.mingrammer.com/docs/getting-started/examples

参考资料

[1]

这个 站: https://www.learnpyqt.com/apps/

[2]

pyqt5入门教程: https://www.learnpyqt.com/courses/start/

[3]

络浏览器: https://github.com/learnpyqt/15-minute-apps/tree/master/browser

[4]

络浏览器(选项卡): https://github.com/learnpyqt/15-minute-apps/tree/master/browser_tabbed

[5]

扫雷: https://github.com/learnpyqt/15-minute-apps/tree/master/minesweeper

[6]

No2Pads: https://github.com/learnpyqt/15-minute-apps/tree/master/notepad

[7]

计算器: https://github.com/learnpyqt/15-minute-apps/tree/master/calculator

[8]

文字处理器: https://github.com/learnpyqt/15-minute-apps/tree/master/wordprocessor

[9]

摄像头/快照: https://github.com/learnpyqt/15-minute-apps/tree/master/camera

[10]

播放器: https://github.com/learnpyqt/15-minute-apps/tree/master/mediaplayer

[11]

便笺: https://github.com/learnpyqt/15-minute-apps/tree/master/notes

[12]

画图: https://github.com/learnpyqt/15-minute-apps/tree/master/paint

[13]

解压缩: https://github.com/learnpyqt/15-minute-apps/tree/master/unzip

[14]

翻译: https://github.com/learnpyqt/15-minute-apps/tree/master/translate

[15]

天气: https://github.com/learnpyqt/15-minute-apps/tree/master/weather

[16]

货币转换器: https://github.com/learnpyqt/15-minute-apps/tree/master/currency

[17]

单人纸牌: https://github.com/learnpyqt/15-minute-apps/tree/master/solitaire

[18]

fixer.io: https://fixer.io/

[19]

PyQt5教程: https://www.learnpyqt.com/

往期链接:

没想到吧!这个操作系统竟比 macOS 还火

一夜之间火爆 GitHub!这款神秘的通讯软件究竟是什么br>

P7砖家:对不起,我要跑路了!

·················END·················

你好,我是Sitin涛哥,非著名程序员,项目经理,现在创业中。

很开心能够遇到你,欢迎添加我的微信 257735 ,备注来意,一起进步。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91536 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月19日
下一篇 2021年2月19日

相关推荐