Attribute Qt::AA_UseSoftwareOpenGL must be set before QCoreApplication is created.

Attribute Qt::AA_UseSoftwareOpenGL must be set before QCoreApplication is created.
运行anaconda.出现这个问题,怎么解决?
ipython console窗口打不开😣

参考GPT和自己的思路,这个问题通常出现在使用anaconda时,特别是在Windows系统上。解决这个问题的一种方法是设置一个环境变量来告诉Anaconda使用软件OpenGL而不是硬件OpenGL。

以下是解决问题的步骤:

1.打开Anaconda Prompt(或者在Windows中使用cmd)。
2.输入以下命令,设置环境变量:

set QT_QPA_PLATFORM=offscreen

3.然后输入以下命令,启动ipython console:

ipython qtconsole

这应该可以让你成功启动ipython console窗口。如果仍然无法启动,请确保你已经安装了必要的依赖项,如PyQt等。

二、解决步骤

  1. 卸载低版本

卸载低版本Matplotlib
2. 安装最新版本

安装最新版本的Matplotlib

问题解决

参考GPT和自己的思路:这个问题通常出现在使用Qt图形库的应用程序中,由于硬件或驱动问题,无法使用OpenGL硬件加速,因此需要使用软件渲染器。解决方法如下:

在程序的main函数的最开始添加以下代码:

1 QCoreApplication::setAttribute(Qt::AA_UseSoftwareOpenGL);

2 确保已经安装了最新的显卡驱动程序。

3 尝试升级或降级Qt库版本,或者使用另外一个版本的Qt库。

如果以上方法都不起作用,可以尝试使用其他的IDE或编辑器,或者查看系统环境是否存在其他的OpenGL相关库文件,如OpenGL32.dll等。如果是在Anaconda中运行的Python程序出现这个问题,可以考虑安装PyQt库并使用PyQt提供的Qt库,或者使用其他的Python环境。至于IPython console窗口无法打开的问题,可能与以上问题无关,可以尝试重启计算机或者重新安装Anaconda。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
这个问题是由于Qt的一个属性没有在QCoreApplication被创建之前被设置引起的。这个属性是Qt::AA_UseSoftwareOpenGL。可以通过在程序一开始就设置这个属性来解决这个问题。

你可以尝试在你的代码的一开始增加下面这段代码:

import os
os.environ["QT_QPA_PLATFORM_PLUGIN_PATH"] = "路径/Anaconda3/Library/plugins/platforms"
from PyQt5.QtWidgets import QApplication
from PyQt5.QtCore import Qt

# Set the attribute before creating the QApplication instance
QApplication.setAttribute(Qt.AA_UseSoftwareOpenGL, True)
app = QApplication([])

需要注意的是,上面的"路径/Anaconda3/Library/plugins/platforms"应该替换为你的Anaconda安装路径下的库路径。一旦这个属性被设置了,你就可以创建你的application和窗口了。如下面这个例子:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton


class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.button = QPushButton("Click Me!", self)
        self.button.clicked.connect(self.button_clicked)

    def button_clicked(self):
        print("Button Clicked!")


if __name__ == '__main__':
    # Set the attribute before creating the QApplication instance
    QApplication.setAttribute(Qt.AA_UseSoftwareOpenGL, True)
    app = QApplication(sys.argv)

    win = MyWindow()
    win.show()

    sys.exit(app.exec_())

这样就可以正常运行了。
如果我的回答解决了您的问题,请采纳!