为什么 QtWidgets.QApplication 需要 sys.argv?

wal*_*rus 5 sys python-3.x pyqt5

大家好,我正在 youtube 上的一系列教程中学习 pyqt5,我不明白为什么QtWidgets.QApplication有这样的论点:sys.argv我不熟悉sys库,我阅读了文档,但仍然没有任何线索,所以抱歉,我知道这个问题有点菜鸟。

import sys
from PyQt5 import QtWidgets


def window():
    app = QtWidgets.QApplication(sys.argv)
    w=QtWidgets.QWidget()
    w.show()
    sys.exit(app.exec_())

window()
Run Code Online (Sandbox Code Playgroud)

Sae*_*eas 0

来自文档

系统参数

传递给 Python 脚本的命令行参数列表。argv[0] 是脚本名称(无论是否是完整路径名,都取决于操作系统)。如果该命令是使用解释器的 -c 命令行选项执行的,则 argv[0] 将设置为字符串“-c”。如果没有脚本名称传递给 Python 解释器,则 argv[0] 为空字符串。

要循环遍历标准输入或命令行上给出的文件列表,请参阅 fileinput 模块。

例子:

python foo.py
sys.argv = ['foo.py']

python foo.py bar baz
sys.argv = ['foo.py', 'bar', 'baz']
Run Code Online (Sandbox Code Playgroud)

对于您的具体问题,请参阅此链接:Why do I need "sys.argv" to start a QApplication in PyQt?

基本上,QT 应用程序可以从命令行获取初始化参数,最上面的答案应该指向它们的列表,并解释它们的作用。