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()
于是现在点击菜单项, 会勾上勾, 同时菜单也不会消失哟!


3, 从sqlite数据库读取数据显示在菜单上

conn = sqlite3.connect("data.sql")
cur = conn.cursor()
cur.execute("select * from settings")
for num, line in enumerate(cur):
    getattr(self, "action%d" % (num,)).setText(line[0])
cur.close()
conn.close()

其实很简单…其中主要是getattr的应用(赞PT酱)…之前我用exec虽然达到了相同的效果, 但是PT酱曰了一句我这样下去总有一天会被exec害死, 于是我从良了…(误)

于是PyQt4的第一篇折腾笔记到此告一段落了, 本猫仍会继续折腾各种折腾的东西, 然后把自己的折腾经历折腾上Blog, 给各位继续折腾…

6 thoughts on “PyQt4 笔记 (1)”

Leave a Reply

Your email address will not be published. Required fields are marked *

QR Code Business Card