Python Gtk3使用Gtk.Container创建简单的容器对象

时间:2017-09-09 01:31:40

标签: gtk3 pygobject

我尝试使用以下代码创建基本的GTK容器窗口小部件:

from Gtk3Modules import *
from gi.repository.GObject import GObject

class Ex(Gtk.Container):
    pass


btn = Gtk.Button("nss")

ab = Ex()
ab.add(btn)


w = Gtk.Window()
w.add(ab)
w.show_all()

当我启动此脚本时,我收到以下致命错误:

(example.py:2642): Gtk-WARNING **: GtkContainerClass::add not implemented for '__main__+Ex'
**
Gtk:ERROR:gtkwidget.c:12365:gtk_widget_real_realize: assertion failed: (!_gtk_widget_get_has_window (widget))
rlwrap: warning: python3 crashed, killed by SIGABRT (core dumped).
rlwrap itself has not crashed, but for transparency,
it will now kill itself with the same signal


warnings can be silenced by the --no-warnings (-n) option
Aborted (core dumped)

1 个答案:

答案 0 :(得分:1)

Gtk.Container不是Widget,它是您必须实现的接口。这不太可能是你想要实际做的,因为实现一个新的容器并不是一件容易的事。

如果您想要包含多个孩子,您想要使用的内容可能是Gtk.Box;如果您只想要一个孩子,则可能需要Gtk.Bin