从GtkListBox中删除nonGtkListBoxRow父级

2024-09-27 09:26:09 发布

您现在位置:Python中文网/ 问答频道 /正文

只是关于我最近遇到的一些事情的简短说明。我用了python,但我想它也适用于其他语言。在

from gi.repository import Gtk

win = Gtk.Window()
listbox = Gtk.ListBox()
somewidget = Gtk.Somewidget()
win.add(listbox)

listbox.insert(somewidget -1)
listbox.remove(somewidget)  #ERROR

这是一个GtkListBox,填充了一个不是GtkListBoxRow类型的项。当试图从GtkListBox中删除它时,它会给出以下信息:

^{pr2}$

Tags: fromimportadd语言gtkrepositorywindow事情
1条回答
网友
1楼 · 发布于 2024-09-27 09:26:09

问题是,GtkListBox必须只有GtkListBoxRow类型的子级。(请参见GTK doc)因此,当尝试插入另一个小部件时,中间会自动添加一个GtkListBoxRow小部件:

+                 -+
|                                   |
| GtkListBox                        |
|  +                                |
|  + -> GtkListBoxRow (auto-added) |
|         +                         |
|         + -> Gtksomewidget       |
|                                   |
+                 -+

如果您试图删除自己的小部件,Gtk将失败,因为它需要您的ListBox的直接子控件。所以不用

^{pr2}$

类型

listbox.remove(somewidget.get_parent())

相关问题 更多 >

    热门问题