GUI搭建必看-PyQt5中的基础命令详解

PyQt5中的基础命令详解

  • 前言
  • 一、利用PyQt5 写出第一个程序
    • 1. 基础命令解释
    • 2. 第一个程序案例
  • 二、 __name__函数 的具体含义
    • 1. Python 中的下划线的理解**
      • a) 单下划线_
      • b) 双下滑划线__
    • 2. __name__函数 的含义

欢迎学习交流!
邮箱: z…@1…6.com
网站: https://zephyrhours.github.io/

前言

Python作为一种开源的脚本语言,让人们学习编程的代价降低,因此近些年来,python因为它具有简单性、易用性和包容性的特点,使其在编程语言中的排名和热度不断的提升,并在深度学习、人工智能等领域大放异彩。作为一名科研工作者,掌握一门编程语言也成为科研必备技能,从而快速帮助我们解决科研难题。笔者同大多数朋友一样,也是一名PyQt5的初学者,因此用博客来记录学习的点滴,希望对一起学习的小伙伴有所帮助。

一、利用PyQt5 写出第一个程序

PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成。PyQt5本身拥有超过620个类和6000函数及方法。在可以运行于多个平台,包括:Unix, Windows, and Mac OS。其中包括的类也比较多,而 QWidget类是所有用户界面对象的基类,QMainWindow和QDialog等都是QWidget的子类。下面我们就来对其中一些基础的命令进行详细介绍,并写出我们的第一个PyQt5程序。

1. 基础命令解释

在网上查看了很多关于PyQt5的基础教程,基本上都是以案例或者程序开始进行讲解,其中的一些基础命令却少有人解释,这对于初学者来说很不友好,因为在不明白程序中每个语句含义的情况下,很难真正理解甚和掌握这门语言。 因此,笔者将自己的关于对这些基础命令的理解和学习心得分享给初学者,希望对您有所帮助。所以在写第一个程序之前,先介绍一下其中的基础命令,以方便初学者的理解。

a) PyQt5中重要的基类

  • QtWidgets 是所有Qt控件中的基类
  • Qapplication 可以简单的理解为程序的进程,每一个程序运行都需要一个进程,因此创建窗体必须先要创建一个进程。

b) 基础命令解释

import sys # 导入系统模块

说明: 这是我们创建窗体必须要导入的一个模块,sys系统模块主要负责系统文件的操作,并传递参数给应用

app=QApplication(sys.argv)  # 创建一个进程,并传入系统参数

说明:

  • QApplication 类,是窗体程序使用时必须具备的,程序运行前,必须要先创建一个进程,sys.argv 是在程序进程中需要传入的系统参数
  • 一个 Qapplication(进程)可以控制多个窗口,可以理解为一个主导文件,控制多个窗口
sys.exit(app.exec__()) # 监听程序,防止闪退

说明:

  • 后面的app.exec__在系统退出后会返回一个0值
  • app.exec__() 主要作用是使用死循环(无限循环)来监听界面的关闭按钮等界面控件等事件
if __name__ =='__main__'    # 用于模拟程序主入口

说明:
相当于Python模拟的程序入口,Python本身并没有这么规定,这只是一种编码习惯。由于模块之间相互引用,不同模块可能有这样的定义,而程序入口只有一个。到底哪个程序入口被选中,这取决于__name__的值

2. 第一个程序案例

在了解上面的基础操作命令之后下面我们就可以来写我们的第一个PyQt5程序了,具体代码如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
 PyQt5 tutorial
 Zephyr Hou on 2020-07-20
"""
# 导入必备的库文件
import sys
from PyQt5.QtWidgets import QApplication,QWidget

if __name__ == '__main__':      # 模拟程序入口
    app = QApplication(sys.argv)  # 创建进程
    w=QWidget()                  # 类的实例化,实例化QWidget类
    w.resize(400,300)            # 重新调整窗体大小(width,height)
    w.setWindowTitle("Zephyr Hou") # 设置窗体名称
    w.move(200,300)                # 移动窗体显示位置(距离屏幕左上角)
    w.show()                       # 窗体显示

    sys.exit(app.exec_())          # 死循环,监听进程,如果没有这句,程序会闪退

具体运行效果如下:
GUI搭建必看-PyQt5中的基础命令详解_第1张图片
程序的基础命令已经在代码中进行了详细解释,此处不一一解释,下面重点介绍一下 "__name__"函数。

二、 __name__函数 的具体含义

在初学一门语言的时候,总是会遇到各种各样的问题,其中
if __name__ == ‘__main__’: 这句估计很多小伙伴跟我初学的时候一样也是不求甚解。这里笔者根据自己的理解对这个命令做一些具体的解释。

1. Python 中的下划线的理解**

python中,下划线 “_” 不管是单独作为变量名或者作为变量名的前缀或者后缀,是有特殊含义的,下面简要的来总结一下。

a) 单下划线_

  • 第一种:作为临时变量
for _ in range(10)
	print('Good good study, day day up!')

如上所示,当你对整个循环的计数不感兴趣的,而只是关心输出结果的时候,就可以将“_”作为临时变量使用。

- 第二种:做为变量前的下划线
表明这是一个受保护的变量,用于警告说明这是一个私有变量,外部类不要去访问它。虽然原则上不允许直接访问,但通过外部类还是可以访问到这个变量的。

# 定义一个Studet类
class Student:
	def __init__(self,name,age):
		self._name = name
		self.age =age

在这个例子中,"_name"就是一个内部的私有变量

另外在以"_"开头的名称都不会被 “from <模块/包名> import ∗ ” 这种形式导入,这种情况也适用于__xxx 或者 __xxx__的变量。

b) 双下滑划线__

在python中带有双下划线的变量表示该变量为内部变量

  • 只有变量前具有双下划线,具体格式为: __xxx
    在Python中,实例的变量名如果以__开头,就变成了一个私有变量,只有内部可以访问,外部不能访问,因为Python解释器对外把 __xxx变量改成了_classname__xxx,所以,仍然可以通过_classname__xxx来访问__xxx变量。
  • 变量前后都具有双下划线,具体格式为: __xxx__
    这种用法表示Python中特殊的方法名,表面其是内部定义函数,这将确保不会与用户自定义的名称冲突。通常,你将会 覆写这些方法,并在里面实现你所需要的功能,以便Python调用它们。例如,当定义一个类时,你经常会覆写“__init__”方法。

2. __name__函数 的含义

经常在一些python程序中看见这样的写法,这是因为在Python中有很多模块,而这些模块都是可以独立运行的,import的时候是要执行所import的模块的。

具体解释:__name__是python的一个内置类属性,代表对应程序的名称,所有的模块都具有这个内置属性。前后双下划线来表明这是系统定义的名字,它的主要作用就是用来区分,模块是直接被运行还是被导入。

  • 如果模块是被导入,__name__的值为模块名字
  • 如果模块是被直接执行,__name__的值为"__main__"

__name__就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块(也就是调用其他模块的模块时),那么此模块名字就是__main__,通过if判断这样就可以执行 "__main__: “后面的主函数内容;假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过”__main__: "后面的内容。

通过上面方式,python就可以分清楚哪些是主函数,进入主函数执行;并且可以调用其他模块的各个函数等等

Reference:
[1] https://blog.csdn.net/colourful_sky/article/details/81262449
[2] https://www.cnblogs.com/1204guo/p/7966461.html

你可能感兴趣的:(Python,python,界面设计,gui,编程语言)