PySide2基础篇(六)——QPlainTextEdit运用
PySide2基础篇(六)——QPlainTextEdit运用前言:阅读这篇文章我能学到什么? 前面介绍了QLineEdit行编辑框,它是单行的编辑框,下面介绍QPlainTextEdit纯文本编辑框,它是多行编辑框。QPlainTextEdit是很常用的编辑输入控件,下面介绍通过它对文本进行编辑的一些操作。 1 创建一个纯文本编辑框 多行编辑框在编辑时可以通过回车键实现换行编辑,当行文本内容超过行最大字符限制时它会自动换行。 代码示例: 123456789101112from PySide2.QtWidgets import QApplication, QMainWindow, QPlainTextEditapp = QApplication([])MainWindow = QMainWindow() #主对话框PlainTextEdit = QPlainTextEdit(MainWindow) ...
DSSS信号特征提取方法
DSSS信号特征提取方法前言: 这篇文章从通讯接收方角度来说明接收DSSS信号过程中,若产生了干扰信号我们该如何去识别干扰并分辨出正确的信号。如果你苦于DSSS信号中的干扰太多,接收方不知该如何提取出正确信号,那么请阅读这篇文章。 1 什么是DSSS信号? DSSS(Direct Sequence Spread...
PySide2基础篇(五)——QDialog运用
PySide2基础篇(五)——QDialog运用前言:阅读这篇文章我能学到什么? 对话框是设计GUI的基础,这篇文章介绍QDialog的简单运用,请阅读这篇文章。 1 创建一个对话框 PySide2提供了QDialog用于创建对话框,关于对话框可以对其设置很多属性,比如坐标、标题、图标、大小、颜色等。 代码示例: 12345678910111213from PySide2.QtWidgets import QApplication, QDialogfrom PySide2.QtGui import QIconapp = QApplication([])Icon = QIcon(".\png\PNG.png")Dialog = QDialog()Dialog.setWindowTitle("对话框标题")Dialog.setWindowIcon(Icon)Dialog.setGeometry(500, 200, 200, 100) #x, y,...
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...