无法在PyCharm IDE中运行PySide Qt程序,只能通过shell使用pythonw或python.app运行
我在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/)
我看了一个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工具。