无法在PyCharm IDE中运行PySide Qt程序,只能通过shell使用pythonw或python.app运行

2 投票
1 回答
1905 浏览
提问于 2025-04-18 05:14

我在Pycharm里写了一个简单的'pst.py'(就是个hello world程序)。当我运行它的时候,程序崩溃了,报了个错:

Qt内部错误:qt_menu.nib无法加载。这个.nib文件应该放在QtGui.framework/Versions/Current/Resources/目录下,或者放在你的应用程序包的资源目录里。

在PyCharm里,从Python控制台看,所有模块都显示可用:

>>>     print(PySide.QtCore.qVersion())
4.7.4
>>> print(PySide.__version__)
1.1.2

于是我去终端,试着用命令行运行同样的程序,使用了'python.app'和'pythonw'。这两个都能正常运行程序。如果我只用python pst.py,就又崩溃了。

vt102:dBaseProject sloter$ python.app pst.py
vt102:dBaseProject sloter$ which python.app
/Users/sloter/anaconda/bin/python.app

vt102:dBaseProject sloter$ pythonw pst.py
vt102:dBaseProject sloter$ which pythonw
/Users/sloter/anaconda/bin/pythonw

我觉得PyCharm IDE使用的是同一个路径(Users/sloter/anaconda/bin/)

enter image description here

我看了一个YouTube视频,里面有个人在PyCharm里写了一个非常类似的程序,然后在PyCharm里运行,结果一切都很好。

所以,有没有什么建议可以让我在PyCharm里完全开发PySide/QT程序呢?

谢谢

附注:这是我尝试运行的'pst.py'的代码

#!/Users/sloter/anaconda/bin/python

# Import PySide classes
import sys
from PySide.QtCore import *
from PySide.QtGui import *


# Create a Qt application
app = QApplication(sys.argv)
# Create a Label and show it
label = QLabel("Hello World")
label.show()
# Enter Qt application main loop
app.exec_()
sys.exit()

1 个回答

0

Qt内部错误:qt_menu.nib无法加载。这个.nib文件应该放在QtGui.framework/Versions/Current/Resources/目录下,或者放在你的应用程序包的资源目录里。

有一种方法可以帮助你解决这个问题:

mkdir -p application.app/Contents/Frameworks/QtGui.framework/Versions/Current/Resources/
cp -r $(QTLIBDIR)/QtGui.framework/Versions/4/Resources/qt_menu.nib application.app/Contents/Frameworks/QtGui.framework/Versions/Current/Resources/

一般来说,如果你手动复制这些文件,我个人建议使用macdeployqt工具。

撰写回答