【问题标题】:Why does QtWidgets.QApplication require sys.argv?为什么 QtWidgets.QApplication 需要 sys.argv?
【发布时间】:2018-02-10 00:58:57
【问题描述】:

大家好,我正在 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()

【问题讨论】:

标签: python-3.x pyqt5 sys


【解决方案1】:

来自docs

sys.argv

传递给 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']

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

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

【讨论】:

  • “我不明白为什么 QtWidgets.QApplication 有参数 sys.argv”。虽然这个答案确实说明了什么是 sys.argv,但它确实没有解释了为什么 QtWidgets.QApplication 需要它作为参数。
  • 编辑包含答案。旧标题不清楚。这可能应该作为副本关闭。
  • 为什么只根据标题回答问题?
  • "有参数 sys.argv 我不熟悉 sys 库我阅读了文档但仍然没有任何线索,很抱歉我知道这个问题有点愚蠢。"我认为 sys.v 是什么以及将其用作构造函数的参数时的含义是相当明显的。我的错,我已经澄清了。
  • 所以 sys.argv 基本上是我在我的不和谐机器人中使用的,例如!bot_name 播放
猜你喜欢
  • 2017-05-17
  • 2015-03-12
  • 2017-05-01
  • 2019-06-09
  • 1970-01-01
  • 2020-05-03
  • 2020-03-22
  • 2011-08-11
  • 2019-06-09
相关资源
最近更新 更多