(序)相关软件及安装说明
1. Python版本及安装
3.8及以下版本支持win7
3.9及以上版本只支持win10及以上系统
https://www.python.org/
2. Python pip源
默认源速度比较慢。
命令行修改法
(1)命令行临时修改法
在用pypi下载python包的时候,可以直接使用pip install packagename -i参数,指定下载源的URL
pip install ping3 -i https://pypi.tuna.tsinghua.edu.cn/simple
(2)命令行永久修改法
使用pip config set global.index-url来直接指定下载源的URL,这样就不用手动修改配置文件了
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
3.国内源URL分享
以下是国内互联网常用的pypi安装源URL,在国内互联网下载的速度非常
pypi 清华大学源:https://pypi.tuna.tsinghua.edu.cn/simple
pypi 腾讯源:http://mirrors.cloud.tencent.com/pypi/simple
pypi 阿里源:https://mirrors.aliyun.com/pypi/simple/
pypi 豆瓣源 :http://pypi.douban.com/simple/
4. VSCode配置python环境
https://blog.csdn.net/qq_40577131/article/details/112932251
5. Pycharm安装教程
https://blog.csdn.net/qiqi1220/article/details/121671381
(一 )Python Qt 简介
1. 安装 PySide2
pip install pyside2 -i https://pypi.douban.com/simple/
建议:如果你的程序要发布给客户使用,建议使用32位的Python解释器,这样打包发布的exe程序可以兼容32位的Windows
2. 安装 PyQt5
pip install pyqt5-tools
即可同时安装 PyQt5 和 一些重要的工具,比如 Qt designer。
一个小例子:
from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton, QPlainTextEdit,QMessageBox
class Stats():
def __init__(self):
self.window = QMainWindow()
self.window.resize(500, 400)
self.window.move(300, 300)
self.window.setWindowTitle('薪资统计')
self.textEdit = QPlainTextEdit(self.window)
self.textEdit.setPlaceholderText("请输入薪资表")
self.textEdit.move(10, 25)
self.textEdit.resize(300, 350)
self.button = QPushButton('统计', self.window)
self.button.move(380, 80)
self.button.clicked.connect(self.handleCalc)
def handleCalc(self):
info = self.textEdit.toPlainText()
# 薪资20000 以上 和 以下 的人员名单
salary_above_20k = ''
salary_below_20k = ''
for line in info.splitlines():
if not line.strip():
continue
parts = line.split(' ')
# 去掉列表中的空字符串内容
parts = [p for p in parts if p]
name,salary,age = parts
if int(salary) >= 20000:
salary_above_20k += name + '\n'
else:
salary_below_20k += name + '\n'
QMessageBox.about(self.window,
'统计结果',
f'''薪资20000 以上的有:\n{salary_above_20k}
\n薪资20000 以下的有:\n{salary_below_20k}'''
)
app = QApplication([])
stats = Stats()
stats.window.show()
app.exec_()
(三)界面设计师 Qt Designer
1. 软件位置如下:
C:\Users\user\AppData\Local\Programs\Python\Python38\Lib\site-packages\PySide2
2.动态加载UI文件
from PySide2.QtWidgets import QApplication, QMessageBox
from PySide2.QtUiTools import QUiLoader
class Stats:
def __init__(self):
# 从文件中加载UI定义
# 从 UI 定义中动态 创建一个相应的窗口对象
# 注意:里面的控件对象也成为窗口对象的属性了
# 比如 self.ui.button , self.ui.textEdit
self.ui = QUiLoader().load('main.ui')
## 其他代码
app = QApplication([])
stats = Stats()
stats.ui.show()
app.exec_()
如果你使用的是PyQt5 而不是 PySide2,加载UI文件的代码如下
from PyQt5 import uic
class Stats:
def __init__(self):
# 从文件中加载UI定义
self.ui = uic.loadUi("main.ui")
3.转化UI文件为Python代码
3.1 命令行转换
还有一种使用UI文件的方式:先把UI文件直接转化为包含界面定义的Python代码文件,然后在你的程序中使用定义界面的类
执行如下的命令 把UI文件直接转化为包含界面定义的Python代码文件
pyside2-uic main.ui > ui_main.py
如果你安装的是PyQt5,执行如下格式的命令转化
pyuic5 main.ui > ui_main.py
3.2 在Pycharm中添加pyside2uic扩展
方法见链接:
https://www.jb51.net/article/218294.htm
4.发布程序
我们前面开发的QT界面程序,在Windows 上只需要执行下面的命令,即可制作独立exe程序
pyinstaller httpclient.py --noconsole --hidden-import PySide2.QtXml
4.1 使用pyinstaller 打包 exe
https://blog.csdn.net/pipisorry/article/details/50620122
4.2可视化 auto-py-to-exe 打包 exe
https://blog.csdn.net/cainiao_python/article/details/121045407
(四) UI界面引入的三种方式总结
1.手写代码
# 手写代码的基础框架
# 导入需要的库and元件
from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton, QTextEdit
# 初始化函数
def sayHello():
textEdit.setText("hello")
# 初始化控件
app = QApplication([])
window = QMainWindow()
window.resize(800, 600)
window.move(300, 310)
window.setWindowTitle('MainWindow')
textEdit = QTextEdit("init-information", window)
textEdit.resize(500, 400)
textEdit.move(40, 50)
# textEdit.setText("init-information")
button = QPushButton('pushButton', window)
button.move(600, 300)
button.resize(130, 50)
# button.setText('pushButton')
# 编写信号与槽,以及图像化
button.clicked.connect(sayHello)
window.show()
app.exec_()
2.加载UI文件
import sys
from PySide2.QtUiTools import QUiLoader
from PySide2.QtWidgets import QApplication
from PySide2.QtCore import QFile
# 定义触发函数
def sayHello():
window.textEdit.setText("hello world!")
print("Button click!")
if __name__ == "__main__":
app = QApplication(sys.argv)
ui_file = QFile("UI/mainWindow.ui")
ui_file.open(QFile.ReadOnly)
loader = QUiLoader()
window = loader.load(ui_file)
ui_file.close()
# 在这里加入信号触发、空间位置控制等代码
window.pushButton.clicked.connect(sayHello)
# 添加结束
window.show()
sys.exit(app.exec_())
3.载入转换的py文件
import sys
# from sys import argv
# 如果使用sys 那将意味着将要打包很多多西,所以可能会出现问题
from mainWindow import Ui_MainWindow
from PySide2.QtWidgets import QMainWindow, QApplication
# 定义信号和槽函数
def signleAndSlot():
UI.pushButton.clicked.connect(sayHello)
# 定义触发函数
def sayHello():
UI.textEdit.setText("Hello World!")
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
if __name__ == '__main__':
app = QApplication(sys.argv)
main = MainWindow()
UI = main.ui
# 调用信号和槽的函数以及空间管理等函数
signleAndSlot()
main.show()
sys.exit(app.exec_())