【发布时间】:2022-08-17 15:58:57
【问题描述】:
我正在尝试创建一个带有搜索栏的 Gtk DropDown 来对时区列表进行排序。
Gtk4 文档状态
GtkDropDown 知道如何从 GtkStringList 中的项目中获取字符串
这是我最初尝试使用的模型。
它还在set_enable_search()方法描述中说请注意,必须设置 GtkDropDown:expression 才能进行搜索。
我在 GitLab 和 GitHub 上查看了其他项目以及他们是如何做到的,但我发现的所有方法似乎都对我不起作用,在 python 中抛出错误或直接忽略文本输入。
经过多次尝试,这是最后一个在
model.append(Timezone(_(tz)))上抛出ValueError: row sequence has the incorrect number of elements的sn-p# unrelated code above model = Gtk.ListStore(GObject.GType(Timezone)) for tz in pytz.common_timezones: model.append(Timezone(_(tz))) dropdown = Gtk.DropDown() dropdown.set_model(model) dropdown.set_enable_search(True) dropdown.set_expression(Gtk.PropertyExpression(GObject.GType(Timezone), None, \"name\")) self.action_row.add_suffix(dropdown) # parent defined above # unrelated code below班级
Timezone:from gi.repository import GObject class Timezone(GObject.GObject): def __init__(self, name): __gtype_name__ = \"Timezone\" self.name = name def __len__(self): return len(self.name) def __str__(self): return self.name我被卡住了,我缺少什么让它工作?