PyGObject MessageDialog-PyGTKDeprecationWarning-不知道该怎么办

时间:2018-09-24 20:24:58

标签: gtk gtk3 pygtk pygobject

我正在使用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()”。

有人可以给我一个关于问题的更简单的描述吗?

非常感谢!

1 个答案:

答案 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()