python 3.14 暂不支持 pyside6 ? python 窗体无法显示!
上周学习 python 中想试试用 python 写个有窗体 UI 的程序,于是从 CNPM Binaries Mirror 下载了最新的 python-3.14.0a7-amd64.exe ,安装上,用
python.exe -m pip install --upgrade pip -i https://pypi.mirrors.ustc.edu.cn/simple
更新了 pip 到 25.0.1 ,接着用
pip install pyside6 -i https://pypi.mirrors.ustc.edu.cn/simple
安装好了 pyside6 ,运行 pyside6-designer.exe 正常,于是问 AI 写了个空白窗体,保存为 Utf-8 的 hello.py:
import sys
from PySide6.QtWidgets import QApplication, QWidget
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Test")
window.resize(400, 300)
window.show()
sys.exit(app.exec())
结果,用
python hello.py
后,只是卡顿一下,啥窗体也没显示出来,又问了 AI 测试了另外的写法:
uiA.py:
# -*- coding: utf-8 -*-################################################################################
## Form generated from reading UI file 'designernidKEk.ui'
##
## Created by: Qt User Interface Compiler version 6.9.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,QMetaObject, QObject, QPoint, QRect,QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,QFont, QFontDatabase, QGradient, QIcon,QImage, QKeySequence, QLinearGradient, QPainter,QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QSizePolicy, QTextEdit, QWidget)class Ui_Form(object):def setupUi(self, Form):if not Form.objectName():Form.setObjectName(u"Form")Form.resize(400, 300)self.textEdit = QTextEdit(Form)self.textEdit.setObjectName(u"textEdit")self.textEdit.setGeometry(QRect(80, 20, 211, 41))self.retranslateUi(Form)QMetaObject.connectSlotsByName(Form)# setupUidef retranslateUi(self, Form):Form.setWindowTitle(QCoreApplication.translate("Form", u"Form", None))self.textEdit.setHtml(QCoreApplication.translate("Form", u"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><meta charset=\"utf-8\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"hr { height: 1px; border-width: 0; }\n"
"li.unchecked::marker { content: \"\\2610\"; }\n"
"li.checked::marker { content: \"\\2612\"; }\n"
"</style></head><body style=\" font-family:'Microsoft YaHei UI'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">1234444</p></body></html>", None))# retranslateUi
w.py:
from PySide6.QtWidgets import QApplication, QMainWindow
from PySide6.QtCore import QFile
import sys# 假设您的UI文件转换后的类名是Ui_Form
from uiA import Ui_Formclass MainWindow(QMainWindow):def __init__(self):super(MainWindow, self).__init__()self.ui = Ui_Form()self.ui.setupUi(self)if __name__ == "__main__":app = QApplication(sys.argv)window = MainWindow()window.show()sys.exit(app.exec())
均保存为 utf-8 编码,但是执行 python w.py 后依然毫无动静,没窗体出现,也没任何报错。如此放着没动。
过了一周多,到今天怀疑是不是最新的 Alpha 版 python-3.14.0a7-amd64 有 BUG,遂铲了,重新安装回 python-3.13.3-amd64 ,再重复以上过程更新 pip ,安装 pyside6 ,
py程序没做任何变动,再次执行:
python hello.py
结果空白窗体出现了:
继续执行:
python w.py
加了个文本框的窗体也正确显示了:
不信邪,又卸载了 python 3.13.3 版重新安装了 python-3.14.0a7 ,更新完了 pip 继续安装 pyside6 时,忽然就报错了,仔细看了以下发现是要求 python 版本必须小于 3.14 大于等于 3.9 ,这就诡异了,十天前是可以安装的,难道是开发人员也发现了不能显示窗体的 BUG ?
此记!以后注意,不要轻易玩 Alpha 版!