我不得不承认,或许这也是很多人不得不承认的事实,Python资料很少,而且查询起来不方便,就算是官方帮助文档亦是如此。这里面牵扯的东西太多了,譬如版本不兼容,开发项目需要组合第三方的工具,官方帮助文档制作的并不是很理想等等因数。
Python使用的人相对于其他的主流语言来说是很少的,而使用pyqt开发桌面程序就更加少了,大多数是在WEB这一块。
下面是我做的一个记事本程序,主要就是分享一下初级桌面程序开发的经验,同时也记录一下过程与代码。
1.打开eric5,建立一个项目NewWorkTest(存取的文件后缀.e4p)。
2.建立一个ui界面文件(Widget类型),命名:NewWorkTestOne(存取的文件后缀.ui)。此时会自动打开pyqt的图形编辑界面,放入3个QPushButton按钮控件:Open Save Close,一个QTextEdit文本控件。Close按钮的ButtonClose点击事件链接Form的close()槽。然后保存,返回eric5编辑器中,点击Compile form编译窗体。此时可以在Ui_NetWorkTestOne.py中看到源码。
Ui_NetWorkTestOne.py源代码:
按F2或者F5可以运行看到界面效果。
注意:如果在pyqt里面的按钮设置的是中文字体的话,编译窗体之后会出现中文乱码的情况,此时,我们只需要将Settings->Prefrence->Qt中的Encoding都设置为gb2312即可。当然也可以不改变,那就需要到代码中手动将乱码改成中文。
3.点击NetWorkTestOne.ui,选择Generate Dialog Code,生成一个类(这个类继承窗体Ui_NetWorkTestOne类,保证每次设计界面保存并编译之后不会影响已经写的事件、函数等等代码),命名:SubFormNodepad(文件后缀:py),双击此文件进入代码界面。这个时候会发现系统已经生成了一些简单的代码如继承窗体、启动函数__init__等等,我们添加一些启动代码:
if __name__ =="__main__":
app = QtGui.QApplication(sys.argv)
subFormNotepad = SubFormNotepad()
subFormNotepad.show()
sys.exit(app.exec_())
如下源代码:
此时我们按F5会发现,编辑器报一个错误,定位到:from .Ui_NetWorkTestOne import Ui_FormNotepad(红色背景)。这可能是eirc5的一个BUG还是怎么的(或许是我工具装的不好?或许是系统有问题?至少我研究了很久也没有找到原因),我们去掉这个.就可以正常运行了。
4.编写记事本程序
源代码: