PyQt5学习笔记002——Hello world代码详解

# -*- coding: utf-8 -*-

from PyQt5.QtWidgets import QDialog, QApplication
from Ui_hello import Ui_helloDlg
import sys


class helloDlg(QDialog, Ui_helloDlg):
    def __init__(self):
        super(helloDlg, self).__init__()
        self.setupUi(self)
        
if __name__ == "__main__":    
    app = QApplication(sys.argv)
    dlg = helloDlg()
    dlg.show()
    sys.exit(app.exec_())

    先把上篇文章中编写的代码贴出来,然后再来一行一行去理解。

  • 编码注释

# -*- coding: utf-8 -*-

 指定文件编码为utf-8,这句话只能放在文件的第一行或第二行,还可以写成

# coding=utf-8

因为我们在脚本文件中用到了中文注释,也就是属于utf-8编码的,如果指定其他编码格式,python解释器就会报错。

  • 导入模块

from PyQt5.QtWidgets import QDialog, QApplication
from Ui_hello import Ui_helloDlg
import sys

    这三句话是为了导入接下来的代码用到的模块,有些类似C/C++语言中的#include <头文件>。导入的模块要么在系统目录中,要么就在当前文件的同一目录下,可直接import导入。

    还有一种导入方式是from A import B,那么接下来就可以直接调用B模块。如果是from A import *,那么要用到A中的B模块,则需要用A.B()的方式,有一点像命名空间的感觉。只是借助这个词来理解一下。

  • 类的实例化

class helloDlg(QDialog, Ui_helloDlg):
    def __init__(self):
        super(helloDlg, self).__init__()
        self.setupUi(self)

    任意一个你想要描述的对象的属性和方法可以抽象出来,定义成一个类。当你想描述一个具体特指的对象时,就需要对类进行实例化。Python类的初始化方法就是__init__()函数,类似于C++/C#的构造函数,具体实现又有点区别,过程是先创建一个空对象,然后用__init__()方法初始化这个空对象。

    super方法则是继承父类的初始化方法,且防止多重继承时的重复调用。最后一句setupUi()方法就是初始化Qt设计师创建的窗体,包括各个控件、信号与槽。

  • main函数

if __name__ == "__main__":    
    app = QApplication(sys.argv)
    dlg = helloDlg()
    dlg.show()
    sys.exit(app.exec_())

第一句if __name__ == "__main__":   判断是否正在运行当前py文件。

第二句app = QApplication(sys.argv)创建QApplication对象,参数为命令行接收到的参数。

第三句初始化对话框类。

第四句QDialog.show()方法显示非模式对话框对象。

第五句消息循环结束之后返回0,接着调用sys.exit(0)退出程序。

 

嗯,废了不少精力去解释这段代码,当然肯定理解的很片面甚至有模糊有误的地方,如果您看到错误,请及时指出,谢谢。我的邮箱是williamet.cn@gmail.com


 

转载于:https://my.oschina.net/cnet/blog/661485

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值