# -*- coding:utf-8 -*-
import sys
from PySide2.QtWidgets import QApplication, QLabel
print(sys.argv)
if __name__ == '__main__':
dates = QApplication(sys.argv)
label = QLabel('hello world')
label.show()
sys.exit(dates.exec_())
错误
['E:/MayaTool/glTools/test.py']
Traceback (most recent call last):
File "E:/MayaTool/glTools/test.py", line 6, in <module>
dates = QApplication(sys.argv)
TypeError: 'NoneType' object is not callable
**此代码使用自己的编辑器在python中运行,但在Pycharm中抱怨。有什么问题?**
如here所示,QApplication
类的初始化采用了将Python脚本运行为sys.argv
时传递的参数。如您所怀疑,在IDLE中运行时,有参数传递给程序,但是在PyCharm中没有传递(0)参数,因此sys.argv
返回None
。 QApplication
的初始化尝试遍历参数列表,因为它期望字符串list
(参数)。
一个简单的解决方法是检查sys.argv
是否为None
,例如
# -*- coding:utf-8 -*-
import sys
from PySide2.QtWidgets import QApplication, QLabel
print(sys.argv)
if __name__ == '__main__':
if sys.argv is None:
sys.argv = []
dates = QApplication(sys.argv)
label = QLabel('hello world')
label.show()
sys.exit(dates.exec_())