我正在使用PyGObject 3.30,我想显示一个简单的MessageDialog。 这是我的源代码:
def report_error(self, reason):
dialog = Gtk.MessageDialog(Gtk.Window(), 0, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, "Something went wrong")
dialog.format_secondary_text(reason)
dialog.run()
dialog.destroy()
它起作用并且MessageDialog弹出,可以通过单击按钮将其关闭。但是,在我的终端中,我收到此错误消息:
.../main.py:84: PyGTKDeprecationWarning: Using positional arguments with the GObject constructor has been deprecated. Please specify keyword(s) for "parent, flags, message_type, buttons, message_format" or use a class specific constructor. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
dialog = Gtk.MessageDialog(Gtk.Window(), 0, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, "Something went wrong")
...main.py:84: PyGTKDeprecationWarning: The keyword(s) "message_format" have been deprecated in favor of "text" respectively. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
dialog = Gtk.MessageDialog(Gtk.Window(), 0, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, "Something went wrong")
那到底是什么意思?我不知道C。我不知道这意味着什么?例如,我什至不使用“ message_format”。为什么抱怨呢?如何解决折旧错误?我在这里完全迷失了,根本不知道该怎么办。看什么方向。
我什至查看了一些PyGObject示例源代码,并且以与我相同的方式完成了对话框。该示例使用的是“ self”而不是“ Gtk.Window()”,但是“ self”只是给了我一个错误,因此我使用了“ Gtk.Window()”。
有人可以给我一个关于问题的更简单的描述吗?
非常感谢!
答案 0 :(得分:3)
答案全在警告消息中,它告诉您不建议使用位置参数,而应为每个参数“命名”
def report_error(self, reason):
dialog = Gtk.MessageDialog(parent=Gtk.Window(), flags=0, message_type=Gtk.MessageType.INFO, buttons=Gtk.ButtonsType.OK, text="Something went wrong")
dialog.format_secondary_text(reason)
dialog.run()
dialog.destroy()