PyQt5的系列笔记二:Hello PyQt


Hello PyQt

今天咱们来看看,怎么在界面和逻辑分离的情况下,写好一个Hello PyQt。


一、创建第一个窗口

Pyqt的好处在于可以完全把界面和逻辑分开,这样在调整界面时,不会因重新转换代码而影响逻辑层。

二、开发步骤

1.打开设计器Designer,创建一个MainWindow

界面如下(示例):

在这里插入图片描述
拖入Lable组件,双击修改文字:Hello Pyqt
注意:敲重点!!!
右边的属性窗口的**objectName**,一定要改成你要保存的文件名,比如我修改的是:HelloPyqt,在自动生成类的时候会以这个名字作为class 的类名,而不是存的文件名,当然,一般我也会把文件名存成该名字,方便查阅。

在这里插入图片描述
现在我在工程目录下建两个文件夹,一个是view用于放视图文件,一个是logic用于放逻辑处理文件,名字你可以根据自己的喜欢修改。并把界面保存到view下:大家就可以看到有一个HelloPyqt.ui的视图文件了
在这里插入图片描述
之前我说过,*.ui的文件是不被Python可识别运行的,需要转换成Python代码。如图:
在这里插入图片描述
运行后,会生成一个对应的Python文件,有兴趣的童鞋可以自己打开研究一下,不过我比较懒,从来不管这个文件,也不需要我手动去修改。看都懒得看,哈哈
在这里插入图片描述
以后每次修改了界面,运行一下,PyUIC就行了。不知道PyUIC是啥,请看第一章笔记。

好了,界面层就做好了,我们接下来看看逻辑层是怎么实现的。
注意(敲重点):写Pyqt一定要界面逻辑分离,不要在视图文件里去写代码。
不然更新修改界面时,会自动覆盖掉视图文件代码,让爽到你怀疑人生。

2.建立逻辑层代码

我会在逻辑层取一个名字相同的文件,方便对应,也好维护。
在这里插入图片描述

代码如下(示例):

from PyQt5.QtWidgets import QMainWindow
from view.Ui_HelloPyqt import Ui_HelloPyqt

# 用双继承的方式
# 继承该组件的原生类QMainWindow
# 继承自动生成的视图文件Ui_HelloPyqt
class HelloPyqt(QMainWindow,Ui_HelloPyqt):

    def __init__(self):
        # 这两句很简单,就是调用父类构造函数,
        # 然后setupUi组装一下
        # 想不明白什么意思的不用费力去研究,每个逻辑层照抄这两句,省事
        super().__init__()
        self.setupUi(self)

        # 这点比较关键,所有的视图层的组件都可以用self.*来调用
        # 比如我在视图层放了一个QLabel的组件,objectName是lable
        # 所以在设计界面时一定注意组件的objectName这个属性,都是靠这个来关联调用。
        # 用self.lable就可以获取该对象进行代码修改
        # 其它的组件同理,相当方便,这样根本不用去管界面代码是什么
        # 尽管用设计工具去画好,取好名字就行了
        self.label.setText('这是逻辑层修改后的:Hello Pyqt!!')

        # 运行界面程序时,同时在控制台输出一个
        print('Hello Pyqt!!')

以上代码注释都写得很清楚的,我就不一一啰嗦了,上入口函数的代码,运行效果图:

import sys
from PyQt5 import QtWidgets
from logic.HelloPyqt import HelloPyqt

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    # 调用逻辑层的文件就可以了
    MainWin = HelloPyqt()
    MainWin.show()
    sys.exit(app.exec_())

在这里插入图片描述


总结

一直比较喜欢用Pyqt做应用程序,不仅仅是组件多,功能强大;关键在于可以用设计器Designer很方便的设计出对应的界面,设置好属性就可以了,最重要的是可以完全把视图层和逻辑层分离,我不用去关心视图代码是什么意思,我只管用就好了,省了很多事,专专心心写逻辑。

下一步,我会把PyQt5的各组常用组件,信号,事件等一系列的内容慢慢发出来大家交流。

有需要私下交流的朋友,欢迎加我微信沟通
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值