1 说明:
=====
1.1 PySide2 :这个Qt的亲儿子最近(2018年7月)才出生,而且持续有团队在维护。
1.2 PyQt5:是在PySide2之前的,Qt收的义子 (Riverbank Computing这个公司开发的)。
1.3 Qt库里面有非常强大的图形界面开发库,但是Qt库是C++语言开发的,PySide2、PyQt5可以让我们通过python语言使用Qt。推荐使用:PySide2。(终于理顺关系了)
1.4 基于Qt 的Python库
1.4.1 优点是控件比较丰富、跨平台体验好、文档完善、用户多。
1.4.2 缺点是 库比较大,发布出来的程序比较大;当然是个好东西,总得介绍介绍。
1.5 大家要开发小工具,界面比较简单,可以采用appJar,EasyGUI,PySimpleGUI,我都有介绍:
《自称是Python中GUI的终极工具:appJar》
《EasyGUI是python的一个超级简单的GUI工具介绍(一)》
《python3的PySimpleGUI库的介绍、安装、学习》
2 安装:
======
2.1 环境:华为笔记本电脑、深度deepin-linux操作系统、和微软vscode编辑器。
2.2 安装:
#安装 PySide2
pip install pyside2 #官网方法,太慢
#本机安装
#sudo install pyside2 #太慢
#推荐国内源安装
#sudo install -i pyside2
最新pyside2和pyqt5都是支持
2.3 官网:
#最新版
2.4 竟然没有github地址:
#PySide (deprecated),这个地址指已经弃用了
3 helloworld:最简单的一个GUI窗口开始学习:
====================================
3.1 多种方法的代码:
#方法一
from PySide2.QtWidgets import QApplication, QLabel
app = QApplication()
label = QLabel("Hello World")
label.show()
a()
#方法二
from PySide2.QtWidgets import QApplication, QLabel
if __name__ == "__main__":
app = QApplication()
label = QLabel("Hello World")
label.show()
a()
#方法三
from PySide2.QtWidgets import QApplication, QLabel
def main():
app = QApplication()
label = QLabel("Hello World")
label.show()
a()
if __name__ == "__main__":
main()
#方法四
import sys
from PySide2.QtWidgets import QApplication, QLabel
if __name__ == "__main__":
app = QApplication) #python的的知识点
label = QLabel("Hello World")
label.show()
(a())
3.2 python的:(引申)
3.2.1 [0]表示代码本身文件路径。
3.2.2 [ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。
3.3 效果图:
4 美化上述:
=========
4.1 QLabel的文本的字体大小和颜色:
from PySide2.QtWidgets import QApplication, QLabel
app = QApplication()
#文本设置:字体大小和颜色定义
label = QLabel("<font color=red size=40>Hello World!</font>")
label.show()
a()
4.2 窗口大小、位置和标题名:
#方法一
from PySide2.QtWidgets import QApplication, QWidget
class window(QWidget):
def __init__(self):
super().__init__()
("中文显示窗口")
#窗口位置和大小
(300,300, 500,400)
()
#myApp = QApplication)
app = QApplication() #与上面相同
window = Window()
window.show()
a()
#方法二:窗口大小、位置和标题名,带有窗口内容显示文本的
#增加控件:QWidget,QFormLayout,QVBoxLayout
from PySide2.QtWidgets import QApplication, QLabel,QWidget,QFormLayout,QVBoxLayout
app = QApplication()
#自定义Windowti=window title=窗口相关设置:类(python的基础知识)
class Windowti(QWidget):
#初始化特性
def __init__(self):
QWidget.__init__(self)
#窗口标题名
('你好世界!HelloWorld!') #支持中文
#(400) #最小窗口宽度
#窗口大小和位置
#x和y是坐标,左上角坐标为0,0
#w和h是宽和高,即窗口大小
#setGeometry(x: int, y: int, w: int, h: int)
(10,10,500,500)
# Create the QVBoxLayout that lays out the whole form
= QVBoxLayout()
# Create the form layout that manages the labeled controls
= QFormLayout()
= QLabel('', self)
#.addRow('Hello World!', )
.addRow('<font color=red size=40>Hello World!</font>', )
# Add the form layout to the main VBox layout
.addLayout()
# Set the VBox layout as the window's main layout
()
def run(self):
# Show the form
()
# Run the qt application
a()
myfirstapp=Windowti()
my()
效果图:
4.3 qml法:
4.3.1 文件夹:1hw下面有2个文件:main.py和mian.qml
4.3.2 main.py代码:
from PySide2.QtWidgets import QApplication
from PySide2.QtQml import QQmlApplicationEngine
if __name__ == "__main__":
app = QApplication()
#注意main.qml文件的目录和路径
engine = QQmlApplicationEngine("/home/xgj/Desktop/pyside2/1hw;)
a()
4.3.3 main.qml代码:注意:安装插件:Qt for python,这样qml代码才有高亮。
import QtQuick 2.7
import Q 2.3
import Q 2.3
ApplicationWindow {
id: _window
// 窗口标题设置
title: "qml显示窗口Helloworld!"
// 窗口大小和位置的设置
width: 800
height: 500
x:300
y:300
// Window默认不可见,需要进行设置为可见
visible: true
}
4.3.4 运行效果图:
5 图片显示:
========
5.1 静态图片显示:
from PySide2.QtWidgets import QApplication, QLabel
from PySide2.QtGui import QPixmap
#app = QApplication([])
app = QApplication() #等同于上面
Label = QLabel()
#指定图片的目录和路径,图片格式:jpeg,jpg,png,ico均可
PixMap = QPixmap("/home/xgj/Desktop/pyside2;)
#PixMap = QPixmap("/home/xgj/Desktop/pyside2;)
#PixMap = QPixmap("/home/xgj/Desktop/pyside2;)
#PixMap = QPixmap("/home/xgj/Desktop/pyside2;)
#PixMap = QPixmap("/home/xgj/Desktop/pyside2;) #显示静态的,不是gif动态的
Label.setPixmap(PixMap)
Label.show()
a()
效果图:
5.2 gif图显示:
from PySide2.QtWidgets import QApplication, QLabel
from PySide2.QtGui import QMovie
#app = QApplication([])
app = QApplication()
Label = QLabel()
#注意不要把这行放到实例化app对象的上面,会无效
#gif因为是动态的,属于movie动画类
Movie = QMovie("/home/xgj/Desktop/pyside2;) #可以
#Movie = QMovie("/home/xgj/Desktop/pyside2;) #报错
Label.setMovie(Movie)
#这句表示播放动画,不能省略。也不能放到show后面,否则无法自适应大小
Movie.start()
Label.show()
a()
效果图:
====很仔细,初始pyside2===
整理并分享出来,喜欢的就点赞、关注、评论、转发和收藏。