我正在尝试使用 GLib/GTK 附带的命令行选项处理程序,以便其他 GTK 选项在我的应用程序中也可用。
当我有 GLib.OptionArg.INT 选项,并且提供了 0 值时,该选项在 Gio.ApplicationCommandLine.get_options_dict()
中不可用即以下代码将打印
Value: None
。我希望它能打印出Value: 0
。我怎样才能让它做到这一点?
import gi
gi.require_version("Gio", "2.0")
gi.require_version("GLib", "2.0")
from gi.repository import Gio, GLib
app = Gio.Application(
application_id="test.command-line",
flags=Gio.ApplicationFlags.HANDLES_COMMAND_LINE,
)
app.add_main_option(
"value", 0, GLib.OptionFlags.NONE, GLib.OptionArg.INT, "Int value", None
)
def command_line(app, command_line: Gio.ApplicationCommandLine):
command_line_dict = command_line.get_options_dict()
value = command_line_dict.lookup_value("value", GLib.VariantType.new("i"))
print(f"Value: {value}")
return 0
app.connect("command_line", command_line)
app.run(["--value", "0"])
如果用户将选项设置为其默认值(在本例中为零),则这是通过 GApplication
传递选项的
已知问题。