pycharm使用pyside2 TypeError:'NoneType'对象不可调用

问题描述 投票:0回答:1
# -*- 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中抱怨。有什么问题?**

python pycharm pyside2
1个回答
0
投票

here所示,QApplication类的初始化采用了将Python脚本运行为sys.argv时传递的参数。如您所怀疑,在IDLE中运行时,有参数传递给程序,但是在PyCharm中没有传递(0)参数,因此sys.argv返回NoneQApplication的初始化尝试遍历参数列表,因为它期望字符串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_())
© www.soinside.com 2019 - 2024. All rights reserved.