Python Gtk教程

时间:2015-04-26 19:04:35

标签: python gtk

这是GTK教程的示例2

from gi.repository import Gtk

   class MyWindow(Gtk.Window):

    def __init__(self):
        Gtk.Window.__init__(self, title="Hello World")

        self.button = Gtk.Button(label="Click Here")
        self.button.connect("clicked", self.on_button_clicked)
        self.add(self.button)

    def on_button_clicked(self, widget):
        print("Hello World")

win = MyWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()

当我尝试运行时,它什么也没显示,当我关闭窗口时,我收到一条消息,说该程序仍在运行。我已经删除了代码并删除了按钮,窗口会出现,所以我认为button.add中有一个错误。

2 个答案:

答案 0 :(得分:0)

在您的代码中,包含'类'的行中出现意外的缩进错误。并且它没有使用__name__ ==' __ main __'诀窍(虽然这只是一个好习惯)。

这应该有效。至少它在我的Ubuntu dist上使用Python 3.4的Gtk + 3。

from gi.repository import Gtk

class MyWindow(Gtk.Window):

    def __init__(self):
        Gtk.Window.__init__(self, title="Hello World")

        self.button = Gtk.Button(label="Click Here")
        self.button.connect("clicked", self.on_button_clicked)
        self.add(self.button)

    def on_button_clicked(self, widget):
        print("Hello World")

if __name__ == '__main__':
    win = MyWindow()
    win.connect("delete-event", Gtk.main_quit)
    win.show_all()
    Gtk.main()

答案 1 :(得分:0)

尝试从这种方式导入

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

class MyWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title="Hello World")

        self.button = Gtk.Button(label="Click Here")
        self.button.connect("clicked", self.on_button_clicked)
        self.add(self.button)

    def on_button_clicked(self, widget):
        print("Hello World")

win = MyWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()

然后使用你的ide for reindent all lines

如果不能正常卸载所有gtk模块,请安装此 https://sourceforge.net/projects/pygobjectwin32/files/
然后再试一次

相关问题