跳至主要內容

PyQt

LincZero大约 2 分钟

PyQt

参考:

目录

入门

简概

GUI程序

Python语言开发的跨平台图形界面程序

  • Tkinter
    • 描述:Python官方采用的标准库
    • 优点:开源、稳定、发布程序较小
    • 缺点:控件相对较少
  • wxPython
    • 描述:基于wxWidgets
    • 优点:开源、控件丰富
    • 缺点:稳定性相对差点、文档少、用户少
  • PySide2、PyQt5
    • 描述:基于Qt的Python库
    • 优点:控件比较丰富、跨平台体验好、文档完善、用户多
    • 缺点:库比较大,发布出来的程序比较大

PySide2、PyQt5 区别与选择

是两个库,PySide2官方的(亲儿子,但比较晚出来的。18年才出现),PyQt5(第三方的,但出现得比较早),两个库非常相似

一般选择PySide2,毕竟是新的也是Qt官方的,后续发展好。而且PyQt5转PySide2相对简单(需要换类名)

使用流程

软件安装(安装与配置)

pip install pyside2
# 这个库大概有100M左右,安装简单

pip install pyside2 -i https://pypi.douban.com/simple
# 或,豆瓣镜像加速

老师说如果程序要发布给客户使用,建议使用32位Python解释器 但不听不听,让客户换电脑去,不能惯着。我不喜欢使用32位的Python,很麻烦

项目创建

一个py文件即可,不用什么项目结构

代码

# PySide2.QtWidgets,库里控件窗口的部分,大概相当于QT里的QT+=widgets
# 后面import的几个类大概相当于QT里的#include类
from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton,  QPlainTextEdit

app = QApplication([])						# 相当于 QApplication a(argc, argv);	

window = QMainWindow()						# 相当于 Core core;
window.resize(500, 400)							# Core类里的操作,设置大小
window.move(300, 310)							# 设置出现在[显示器]的什么地方
window.setWindowTitle('薪资统计')				  # 标题

textEdit = QPlainTextEdit(window)				# 文本输入框。还有对象树
textEdit.setPlaceholderText("请输入薪资表")		 # 提示文本
textEdit.move(10,25)							# 相对于[父对象]的位置
textEdit.resize(300,350)

button = QPushButton('统计', window)			   # 按钮
button.move(380,80)

window.show()								# 相当于 core.show();
app.exec_()									# 相当于 return a.exec();

对比原版QT

main.cpp

#include "core.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);	
    Core core;
    core.show();
    return a.exec();
}

core.cpp

Core::Core(QWidget *parent)
    : QMainWindow(parent)
{
    resize( 700, 500 );
}

软件运行

一般用PyCharm

  • Setting窗口,选择项目,加入Project Interpreter
  • 右上角配置好运行的 入口.py 后,直接点运行

打包