PyQt作品 – PingTester – 多点Ping测试工具

由于猫每次在一个临时测试点此测试一大片服务器的延迟和丢包, 一个个去跑太蛋疼, 于是用PyQt做了这么个小工具来测试各种线路的延迟丢包等信息.
这是我的第二个PyQt作品= =|||

截图:

(Archlinux / KDE4 环境下)


(Windows XP)

这个工具我已经初步实现了跨平台(在以上截图环境下运行正常), 在编写过程中, 我有如下的收获:

  • 不可以在子线程中直接操作UI, 以免引起资源冲突导致Segmentation Fault
  • 使用Queue类可以初步实现子线程与UI线程更新界面的通信. Signal方面, 我实例了一个QTimer, 每隔一定时间处理一次消息队列.
  • QTableView比QTableWidget效率高得多, 尤其是在Win32平台下. 因此应尽量采用 QTableView + QStandardItemModel 的搭配来做Table

Continue reading PyQt作品 – PingTester – 多点Ping测试工具

PyQt4 笔记 (1)

于是又为自己挖了个坑, 开了一系列新笔记…
基于某些原因(boa丑爆了而且Bug太多啊!!有没有!!)我放弃了wxPython, 投奔Qt了…

首先赞一下Qt Designer 简单的画窗口过程, 还是相当像我熟悉的VB6的(这个真不是贬低..)…
下面就是某些笔记啦!

1, Let’s Begin!
首先… 由于eric的编辑体验挺糟糕..(特别容易崩溃神马的, 而且我不知道怎么让它按F2直接运行别提示我输入参数….), 但是本懒猫又不肯放弃它一键compile ui到py(可以一键处理所有ui文件)的功能, 以及自动generate事件代码的功能, 于是…猫在eric里添加窗口, 然后调用Qt Designer编辑, 保存后compile, 然后generate dialog code神马的…之后在喜欢的编辑器Geany里打开generate了dialog code的那个py文件(主程序文件神马的), 再继续填充各种代码…

2, 多选菜单点击后不消失..
猫做了个多选菜单, 有十来项多选项… 如果每次点开菜单再选其中某个, 又要再次点开菜单选下一个, 还是一件挺崩溃的事情…
于是本猫手动添加槽(注意, 不能用Slots直接拖的方法, 因为你拖不到菜单项上, 必须在Signal/Slot Editor里手动添加):
菜单项actionXXX的triggered() => 相应的菜单menuXXX的show()
于是现在点击菜单项, 会勾上勾, 同时菜单也不会消失哟!
Continue reading PyQt4 笔记 (1)