python 加载UI出现提示

在使用python对ui.UI界面进行加载时,出现错误,但是不影响运行,这是怎么回事?
代码如下:

from PySide6.QtWidgets import QWidget, QApplication, QLabel, QPushButton
from PySide6.QtUiTools import QUiLoader

class first_window:
    def __init__(self):
        self.ui = QUiLoader().load("ui_1.ui")

app = QApplication()
mywindow = first_window()
mywindow.ui.show()
app.exec()

出现错误如下:

qt.pysideplugin: Environment variable PYSIDE_DESIGNER_PLUGINS is not set, bailing out.
qt.pysideplugin: No instance of QPyDesignerCustomWidgetCollection was found.
Qt WebEngine seems to be initialized from a plugin. Please set Qt::AA_ShareOpenGLContexts using QCoreApplication::setAttribute and QSGRendererInterface::OpenGLRhi using QQuickWindow::setGraphicsApi before constructing QGuiApplication.


你遇到的错误提示是关于PySide6设计器插件的问题,以及与Qt WebEngine的初始化有关。这些错误通常不会影响到程序的运行,但可能会导致某些功能或插件无法正常工作。

以下是一些建议来解决这些问题:

  1. 设置环境变量:
    错误信息中提到了PYSIDE_DESIGNER_PLUGINS环境变量未设置。你可以通过以下代码设置该环境变量,使其指向PySide6的插件目录:
import os
from pathlib import Path

plugins_path = Path(os.__file__).absolute().parent / "Lib" / "site-packages" / "PySide6" / "plugins"
os.environ["PYSIDE_DESIGNER_PLUGINS"] = str(plugins_path)

请确保这个路径指向的是你的PySide6安装目录下的正确插件位置。

  1. 检查Qt版本和组件:
    确保你已经安装了与PySide6兼容的Qt版本,以及所需的组件。在某些情况下,可能需要安装额外的Qt组件或插件才能正常加载UI文件并显示窗口。
  2. 初始化Qt WebEngine:
    错误信息中提到了Qt WebEngine的初始化问题。如果你在程序中使用了Qt WebEngine相关的功能,确保在使用QGuiApplication之前设置了Qt::AA_ShareOpenGLContextsQSGRendererInterface::OpenGLRhi属性。这可以通过以下代码实现:
app = QApplication([])
app.setAttribute(Qt.AA_ShareOpenGLContexts)
app.setAttribute(Qt.AA_UseOpenGLES) # 如果你使用的是嵌入式OpenGL ES
  1. 检查UI文件:
    确保ui_1.ui文件存在,并且没有任何错误。有时候,UI文件中的一些错误会导致加载失败或出现其他问题。
  2. 检查PySide6版本:
    确保你使用的PySide6版本是与你的Qt版本兼容的。不同版本的PySide6可能与不同的Qt版本不兼容。
  3. 检查IDE或编辑器设置:
    如果你使用的是集成开发环境(IDE)或编辑器,确保它们的Python解释器和环境配置是正确的,并且IDE或编辑器没有对程序进行其他可能干扰的更改。

【相关推荐】



  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7428336
  • 这篇博客你也可以参考下:python 直接打开ui文件
  • 您还可以看一下 龙豪杰老师的python自动化办公【高级】课程中的 GUI界面实现小节, 巩固相关知识点
  • 除此之外, 这篇博客: python界面设计中的 一、UI是什么? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    UI (user interface)是程序用户的交互界面,终端窗口就是一个简易的UI,当我们想把UI做的自然,美观,功能更齐全,操作更简单时命令行方式就不便用户使用了,这时我们需要图形界面。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^