写过一段时间Python的程序了,但都是纯代码的程序,自己用还可以,如果要分享的话,纯代码就太不友好了。所以准备学习下Python的图形化界面的制作,下面就把自己的学习过程和大家分享下:
1、首先搜索Python图形化界面
搜索出来一堆,点开看了下,有好多种,几经比较之后选择了经典的Pyqt5作为我的学习对象。如果只是想做些简单的程序,Gooey,PysimpleGUI非常值得考虑。
2、确定目标之后就可以安装第三方库了,这个相对比较简单但非常重要,如果不会安装库的话,Python就只能当个高级的计算器玩玩感觉。《初学者必备|Python环境安装、第三方库的下载安装方法》供参考。我用的是清华大学的镜像,速度极快的。
这里需要安装二个库,一个是pyqt5,一个是pyqt5_tools。
注意一个细节,现在的设计工具在Python的安装目录的Lib\site-packages\qt5_applications\Qt\bin中。
为了方便以后使用,我把它固定到了任务栏,当然也可以把它发送到桌面快捷方式。
3、我准备完成一个程序,输入一个网址,点击一个按钮就打开对应的网站。
用到一个文本输入框:PlainTextEdit
修改它的PlaceHolderText为百度的网址(后来发现用PlainText更好)
用到一个按钮:PushButton
修改它的Text属性为打开网址
最终效果如图:
界面制作感受:使用designer设计界面,非常方便,只不过组件和属性大多是以英文形式出现的,有一定的使用障碍。
保存为myui.ui。
4、搜索pythonidle使用UI文件
简单浏览了下,第一个就是一个不错的教程,收了!
学习收获:UI文件有二种使用方式,一种是通过软件将UI转成Py文件使用,一种是动态直接调用。经过比较动态调用使用简便,一个成功的使用的方法如下:
因为Python代码有层次,所以只能上图,如果想获得文字版,可以参考下以前写的《小技巧|强推简单好用的QQ文字识别功能》
执行的结果如下:
5、下面研究如何获取文本框的值,以及修改文本框的值。
搜索到的第一条就解决了我的问题,整合代码如下:
执行结果如下:
6、解决按钮点击时访问,搜索的关键词:pythonPUSHBUTTON点击按钮
搜索到的内容感觉不是很容易懂,在浏览的过程中,为您推荐又一次立功了!
通过多方查看,知道按钮要利用信号/槽绑定事件,说白了就是当……时候,控制……干……事情。可以在designer的右下角设置。比如信息为点击,控制MainWindow槽为关闭。
多方学习折腾之后,最后换了bing搜索,同样的关键词,居然就搞定了,此处无力吐槽。核心的思想就是将ckicked事件绑定connect到指定的函数上面,代码如下。
7、问题是解决了,但出现一个新的问题,程序运行时单击事件自动执行了,没用我点击按钮。继续解决……
这个解决起来很快,用的还是bing搜索关键词:pythonPUSHBUTTON绑定的事件自动执行,第二个文章就是,绑定时如果有参数,需要在前面加上个关键字:lambda。自己手欠用同样的关键词百度搜索了下,只能说谁试谁知道,无语+无语。
核心修改如下:
到此我就解决了UI界面的设计,文本框的使用,按钮事件的绑定的问题。
下面对我来说就是小事情了,因为PYTHON操纵网页我以前就会。
尝试修改。可以参考我以前的文章:《Python爬虫实例|爬取动态生成的网页内容》
终于可以点击按钮打开了指定的网址,但又出现一个新问题,打开的网页一闪而过。
00:05继续搜索:pythonpushbutton打开selenium网页一闪而过
通过阅读后找到原因:没有创建driver对象,添加之后问题就解决了,完整的代码如下:
8、学习心得:
通过这个项目的学习,有以下收获:
一、学习目标要明确
二、搜索词要多样化
三、要多方比对结果
四、碰到问题不要慌
五、折腾到最后才发现其实好简单。