PySide2基础篇(四)——QLineEdit运用
PySide2基础篇(四)——QLineEdit运用前言:阅读这篇文章我能学到什么? 编辑框是用户进行信息录入的主要控件,PySide2提供了QLabel类用于创建编辑框控件。这篇文章介绍一些编辑框的基础用法。 1 创建一个编辑框 创建编辑框类同于创建标签或按钮,其实创建这些控件操作过程都是一样的。 代码示例: 1234567from PySide2.QtWidgets import QApplication, QLineEditapp = QApplication([])LineEdit = QLineEdit("初始文本")LineEdit.show()app.exec_() 运行结果: 我们创建了一个编辑框,并且对其设置了初始文本。和标签或按钮控件一样,也可以修改其显示的文本。 代码示例: 12345678from PySide2.QtWidgets import QApplication,...
PySide2基础篇(三)——QPushButton运用
PySide2基础篇(三)——QPushButton运用前言:阅读这篇文章我能学到什么? 按钮是对话框应用程序常用的控件之一,这篇文章介绍QPushButton按钮控件的简单用法,如果你想快速上手就请阅读这篇文章。 1 创建一个按钮 按钮是对话框交互过程中最常用的控件之一,PySide2为我们提供了一个类PushButton用于生成按钮。下面我们尝试示例化它创建一个按钮控件。 代码示例: 1234567from PySide2.QtWidgets import QApplication, QPushButtonapp = QApplication([])PushButton =...
Python3进阶篇(二)——深析函数装饰器
Python3进阶篇(二)——深析函数装饰器前言:阅读这篇文章我能学到什么? 装饰器可以算Python3中一个较难理解的概念了,这篇文章由浅入深带你理解函数装饰器,请阅读它。 1 装饰器基本概念 装饰器是能够修改已定义函数功能的函数,也即装饰器本身就是具有这种特殊功能的 函数 。修改是有限制的修改,它只能在你定义的函数执行前或执行后执行其他代码,当然也能给你的函数传递参数。不能直接修改你定义的函数内部的代码。 举个通俗的例子。比如你定义了函数A,那么函数A被装饰器装饰之后,此时你调用A,它可能先去执行一些动作(代码)然后执行函数A,完了又去执行另外一些动作(代码)。也即装饰器帮你的函数附加了一些动作(代码)执行,它改变了你原来定义的函数功能。 如果你看过我的上一篇进阶篇关于函数的讲解(其中降到了函数嵌套定义、函数作为参数、函数返回函数等问题),那么后续的内容将会更容易理解。 2 创建装饰器2.1...
PySide2基础篇(二)——QLabel运用
PySide2基础篇(二)——QLabel运用前言:阅读这篇文章我能学到什么? 我们知道做窗口应用程序最基础的是掌握控件的运用。QLabel就是PySide2中一个基础的控件,它可以用于可以显示文本、图像、视频。下面让我们开始学习它。 1 使用QLabel能做什么? Qt for Python模块中最基本的有三个模块: Qt Core:提供核心的非GUI模块,列如信号和插槽,项目模型的基类,序列化等。 Qt GUI:通过GUI功能扩展QtCore:事件,窗口和屏幕,基于OpenGL和基于栅格的2D绘画以及图像。 Widgets 为您的应用程序提供随时可用的小部件,包括UI的图形元素。 QLabel属于控件,因此它继承于模块Widgets。 1234567891011graph LRA[QtCore.QObject]B[QtGui.QPaintDevice]C[QtWidgets.QWidget]D[QtWidgets.QFrame]E[QtWidgets.QLabel]A --> CB...
Python3进阶篇(一)——函数的深入理解
Python3进阶篇(一)——函数的深入理解前言:阅读这篇文章我能学到什么? 说到函数的你可能会想到函数的参数、返回值、函数地址等,但是Python3的函数用法非常灵活,比如允许函数嵌套定义,允许函数作为参数或变量传递,允许函数返回函数。这篇文章将为你讲解这些“灵活“的用法 1 再看函数 在基础篇我们已经详细的讲解了函数的定义和调用,这里我们更深入的研究下。下面这个例子帮助你回忆函数的定义和调用。代码示例: 12345def Function(): print("Call Function") return 0print(Function()) 运行结果: 12Call Function0 1.1 函数调用的两种形式 函数调用按是否带()可以分为两种方式,带括号时将会执行函数,括号内的实参会传递给形参,函数的返回值会给调用处。如果不带括号,则调用出得到的将会是函数的地址,函数并不会执行。代码示例: 12345678def Function(): ...
PySide2基础篇(一)——安装并运行一个窗口程序
PySide2基础篇(一)——安装并运行一个窗口程序前言:阅读这篇文章我能学到什么? 这篇文章教会你安装PySide2并运行第一个自己的窗口程序。 1 PyQt和PySide2区别1.1 遵照的开源协议不同 PyQt遵照的是GPLv3协议,这个协议要求如何使用了遵照此协议的开源代码(不管是原封不动的当做库来使用,还是自己有修改的二次开发后使用),也必须是开源的,不允许闭源商用(注意不是不允许商用,是不允许闭源商用)。 PySide遵照的是LGPL协议,此协议允许你将遵照此协议的开源库(不能修改只能当做库来使用,如果二次开发修改了也必须开源)用于闭源商用。 需要注意的是较多的开源软件声明了遵照GPL协议,是不允许用于闭源商用的。总之,开源是有限制的开源。 1.2 为什么选择PySide2 PyQt是Riverbank...
软件版本信息定义规则
软件版本信息定义规则前言: 如果你正为软件版本迭代得越来越多烦恼,或者想寻找更规范的版本定义,那么请阅读这篇文章,也许你会有启发。 1 软件版本信息码 软件版本信息码组成 :协议名/产品名(Name)(A).系列号(Series)(B).主版本号(Major)(C).次版本号(Minor)(D).修订版本号(Patch)(E).日期版本号(Date)(F)(阶段版本号(Phase)(G))。 例:MPP2.0.A.1.0.0.200510(R) 1.1 协议名/产品名(A) 作用 :用于区分不同的大类产品。 规则 :由协议类型+协议版本号。如MPP2.0。优先使用协议名,无具体协议的使用大类产品名。 可能值 : None: 空,表示未知,不确定。 MPP: 微软协议笔。 USI:协议笔。 HPP:华为协议笔。 APP:苹果协议笔。 UNI:万能笔。 后续视情况新增。 1.2...
Python3基础篇(十)——异常处理
Python3基础篇(十)——异常处理前言:阅读这篇文章我能学到什么? 这篇文章将为你介绍Python3中的异常捕获和处理,如果你看过《代码大全2》会明白为程序设计上异常的处理是多么重要的一件事。如果你希望对它有一些基础的了解,那么请读这篇文章。 1 程序异常处理 程序异常就是程序的运行结果超出了设计者的预料,程序的运行是“非正常”的执行流程。程序的异常处理其实应该分两个阶段,第一个阶段是异常的检测(识别出异常状态,并区分出是何种异常),第二个阶段是针对特定异常情况应该做何种处理(处理可以是忽略、修正、甚至重启)。变成语言支持异常处理已经不是什么“新鲜”的事了,但还是要提一下早期程序处理异常是用 error code 的方式,即函数或代码段返回故障码,通过故障码来区分异常种类和决定如何处理。这种方式已经日渐淘汰,现在很多编程语言已经对异常处理有了较好的支持,形式通常是 try-catch ,在Python3中是 try-except形式。断言是一种常用的异常处理,它一般用于调试阶段(发行版一般将其关闭)。 1.1...
Python3基础篇(九)——命名空间和作用域
Python3基础篇(九)——命名空间和作用域前言阅读这篇文章我能学到什么? 这篇文章将使你弄明白Python3的命名空间和作用域到底意味着什么。 1 命名空间 命名空间的主要作用是为了防止命名冲突。各个命名空间是独立的,不同命名空间可以具有相同的命名,但同一个命名空间内不得重名(即使变量和函数之间也不能重名)。 1.1 命名空间分类 Python3有三类命名空间: 内置命名空间:Python3的内置名称(关键字、内置变量名、内置函数名)。 全局命名空间:在函数外及类外定义。 局部命名空间:在函数或类中定义的。 1.2 命名空间的查找顺序 当访问一个变量或函数时,python根据名称在命名空间中进行查找,但是几种命名空间查找顺序不同。查找顺序优先级为: 局部命名空间>全局命名空间>内置命名空间 。 这也就能理解当函数内局部变量和外部代码示例: 12345678910111213Parameter1 = 1Parameter2 = 2def...
Python3基础篇(八)——面向对象
Python3基础篇(八)——面向对象前言阅读这篇文章我能学到什么? 这篇文章将为你详细介绍Python3中的面向对象程序设计,你将学会如何定义一个类和使用一个对象。 Python3是一门面向对象的语言,掌握好面向对象的程序设计是用好Python3的前提。如果你理解c++的“万物皆对象”概念那学习起来就轻松很多了。 面向对象是一个抽象的程序设计概念,是软件开发的方法。起初它来自于程序设计,而如今面向对象概念已经扩展到数据库系统、交互结构、应用结构、应用平台、分布式系统、网络管理结构、CAD计数、人工智能等领域。这种思想就像种子一样已经到处传播并发芽生长。 对象编程将任何事物(可以是客观存在或抽象的,客观的比如桌子板凳,抽象的比如时间和爱情)都看做具有 属性 和 方法 的对象,又从同一类事物中抽象出他们的 共性 (比如人类共有的属性是年龄和体重,共有的方法是学习和吃饭)形成类。这就是 面向对象...












