当前位置:   article > 正文

PySide2入门笔记_pyside2中文教程

pyside2中文教程

1. PySide介绍

1.1 Python图形界面开发的几种方案

程序的用户交互界面,英文称之为 UI(user interface)。当一个应用的 UI 比较复杂的时候,命令行方式就不便用户使用了,这时我们需要图形界面。
如果用 Python 语言开发跨平台的图形界面的程序,主要有3种选择:

  • Tkinter
    基于Tk的Python库,这是Python官方采用的标准库,优点是作为Python标准库、稳定、发布程序较小,缺点是控件相对较少。
  • wxPython
    基于wxWidgets的Python库,优点是控件比较丰富,缺点是稳定性相对差点、文档少、用户少。
  • PySide2/PySide6、PyQt5/PyQt6
    基于Qt 的Python库,优点是控件比较丰富、跨平台体验好、文档完善、用户多。缺点是库比较大,发布出来的程序比较大。qt for python帮助文档

1.2 Qt与PySide

Qt是一个跨平台的C++图形用户界面应用程序框架。PySide是一个Python模块,借助PySide,可以在Python下使用Qt。使用PySide既能开发出完美的界面,又能享受Python的便捷开发。

1.3 PySide与PyQt

PyQt是GPLv3协议,大意是你的程序中用了它,你的程序就要开源,如果闭源商用就会违反协议(后果自负,脸皮够厚无所谓)。除非你搞封装动态加载那一套来强行规避。
PySide是LGPL协议,如果你只是作为库用用它,你的程序还是可以闭源商用。
所以很多人喜欢PySide。如果不做商业项目,强烈建议使用PyQt,资料多,稳定。需要开发闭源商用软件的就用PySide。
GPL(General Public License)和LGPL( Lesser General Public License)是GNU的两种License。越来越多的自由软件(Free Software)使用GPL作为其授权声明,如果对GPL一点都不了解,有可能在使用自由软件时违反了GPL的授权。如果是个人或不正规的公司倒也无所谓,但如果是有规模的公司,恐怕会有被起诉的风险。
LGPL是GPL的变种,也是GNU为了得到更多的甚至是商用软件开发商的支持而提出的。与 GPL的最大不同是,可以私有使用LGPL授权的自由软件,开发出来的新软件可以是私有的而不需要是自由软件。所以任何公司在使用自由软件之前应该保证在 LGPL或其它GPL变种的授权下
————————————————
版权声明:本文为CSDN博主「quantLearner」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/The_Time_Runner/article/details/893295560


2. PySide2安装

win+R键,输入CMD,输入:pip install pyside2 -i https://mirrors.aliyun.com/pypi/simple/,回车等待安装。

如果使用PyCharm,安装完PySide2包后,还可将Designer工具等添加到pycharm,配置方法参考
PyCharm配置外部工具


3. Designer使用方法

Qt Designer是PySide、pyqt程序UI界面的实现工具,使用Qt Designer可以直观地完成GUI界面设计,并且设计完成的.ui程序可以转换成.py文件供python程序调用。
Designer位置:“Python安装路径\Lib\site-packages\PySide2\designer.exe”

3.1 主界面

控件工具箱:提供GUI界面开发使用的各种基本控件,如单选框、文本框等。可以拖动到新创建的主程序界面。
工作区:用户放置各种从工具箱拖过来的各种控件。
对象查看器:查看主窗口放置的对象列表。
属性编辑器: 提供对窗口、控件、布局的属性编辑功能。比如修改控件的显示文本、对象名、大小等。
信号/槽编辑器:编辑控件的信号和槽函数,也可以添加自定义的信号和槽函数。
在这里插入图片描述

3.2 布局

QtDesigner中,可以直接将控件拖进窗口中,设计界面,然而存在一个问题是
Designer最常用的布局有3种:
VerticalLayout : 水平布局
HorizontalLayout : 垂直布局
GridLayout:栅格布局
除了使用Layout控件进行布局,containers里的部件同样能布局。
**关于SizePolicy:**每个控件的期望尺寸是不同的,在未设置控件最大值最小值之前,控件推荐到某个尺寸,像默认尺寸一样。但对大多数控件来说,期望尺寸是只读的。这个推荐尺寸是SizeHint。

  • Fixed:窗口控件具有其sizeHint所提示的尺寸且尺寸不会再改变;
  • Minimum:窗口控件的sizeHint所提示的尺寸就是它的最小尺寸,该窗口控件不能压缩的比这个值小,但可以变得更大;
  • Maximum:窗口控件的sizeHint所提示的尺寸就是它的最大尺寸,该窗口控件不能变得比这个值大,但它可以被压缩到minisizeHint给定的尺寸大小;
  • Preferred:窗口控件的sizeHint所提示的尺寸就是它的期望尺寸,该窗口控件可以缩小到minisizeHint所提示的尺寸,也可以变得比sizeHint所提示的尺寸还大;
  • Expanding:窗口控件可以缩小到minisizeHint所提示的尺寸,也可以变得比sizeHint所提示的尺寸大,但它希望能变得更大;
  • MinimumExpanding:窗口控件的sizeHint所提示的尺寸就是它的最小尺寸,该窗口控件不能被压缩得比这个值还小,但它希望能够变得更大;
  • Ignored:无视窗口控件的sizeHint和minisizeHint所提示的尺寸,按照默认来设置。

3.3 样式表

控件右键,点击编辑样式表,可以设置边距,边框,填充等。


4. PySide2用法

4.1 基本用法

推荐使用动态加载UI文件的方式:

  1. 使用Designer创建、制作ui文件。
  2. python加载ui文件、开发各种功能。python代码:
from PySide2.QtUiTools import QUiLoader
from PySide2.QtWidgets import QApplication

class MainWindow:
	def __init__(self):
		self.ui = QUiLoader().load('0801.ui')

if __name__ == '__main__':
	app = QApplication([])
	main_window = MainWindow()
	main_window.ui.show()
	app.exec_()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

4.2 信号与槽

信号与槽是Qt的核心机制,当信号发射时(例如button的点击、checkbox状态的修改等),连接的槽函数就自动执行。PySide2中信号与槽通过Signal.connect()连接。最常用的信号包括button的clicked、下拉菜单的triggered,combobox的currentIndexChanged,输入框的textChanged等。

4.3 控件介绍

各个控件详细文档见:官方文档,另外推荐一位up主python语言爱好者,他详细介绍过几乎每个控件,讲得非常详细,推荐需要专门某个控件时去看他的视频。这里只简单介绍下常用的控件。

PushButton

QPushButton是最普通也是最常用的按钮之一,程序中通常监听它的clicked信号,连接到槽。

LineEdit/TextEdit

LineEdit是单行文本框,该控件只能输入单行字符串。TextEdit是多行文本框,可以输入多行字符串,此外,还可以显示HTML文档信息。效果上前者相当于.txt,后者相当于.doc。
LineEdit常用方法:

  • 常用信号:textChanged(),editingFinished (),
  • setText() 设置文本框内显示的内容
  • text() 获取文本框内容
  • clear() 清楚文本框内容
    TextEdit常用方法:
  • 常用信号:textChanged()
  • setPlainText() 设置文本内容
  • toPlainText() 获取文本内容
  • setTextColor() 设置文本颜色,例如,红色可以将参数设置为QtGui.QColor(255,0,0)
  • setTextBackgroundColor() 设置文本的背景颜色,颜色参数与setTextColor()相同
  • setHtml() 设置HTML文本内容
  • toHtml() 获取HTML文本内容
  • wordWrapMode() 设置自动换行
  • clear() 清楚所有内容

RadioButton

RadioButton也是按钮的一种,多数用于实现“二选一” 或 “多选一”的选择现象。

  • setChecked() 设置单选按钮是否为选中状态,True为选中状态
  • isChecked() 返回单选按钮的状态,True 为选中状态,False为未选中状态

CheckBox

勾选按钮。常用信号为stateChanged()

  • checkState() 设置单选按钮是否为选中状态,True为选中状态
  • isChecked() 返回单选按钮的状态,True 为选中状态,False为未选中状态

ComboBox

下拉菜单。常用信号为:currentIndexChanged (index),currentIndexChanged (index)

  • setCurrentIndex(index) 设置当前索引
  • setCurrentText(text) 设置当前文字
  • addItem(text) 增加一项
  • count() 返回项数
  • currentIndex() 返回当前选择的索引
  • insertItem(index, text) 插入项目
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/652850
推荐阅读
相关标签
  

闽ICP备14008679号