在之前的pyGTK中,您可以使用combobox.set_title(text)来设置输入组合框的文本。现在在Python-GTK3中它似乎不起作用,example不包括设置它。在这种情况下是否有新方法来设置选择?
答案 0 :(得分:1)
正如@Rawing评论的那样,问题有点困惑,但目标似乎是:用条目在Gtk.ComboBox上设置文本。
pyGTK和Gtk + 2具有set_title
方法。 Gtk+ 3 also had最高版本为3.10,但经过评论,已被弃用。无论如何,该方法在两个版本上都做了同样的事情,那就是:" 在撕裂模式下设置菜单的标题 "与入境无关。
指示的example使用带模型的Gtk.ComboxBox。要设置条目的内容,我们可以从模型中设置活动项目,Gtk.Entry将通过显示同一项目中的文本来反映该项目。
如果您将name_combo.set_active (1)
添加到example代码中,请执行以下操作:
...
name_combo = Gtk.ComboBox.new_with_model_and_entry(name_store)
name_combo.connect("changed", self.on_name_combo_changed)
name_combo.set_entry_text_column(1)
name_combo.set_active (1) # ADD THIS LINE <--------------------
vbox.pack_start(name_combo, False, False, 0)
....
您将验证Gtk.ComboBox中的Gtk.Entry是否会填充模型中的文本。
如果你想以某种方式直接处理Gtk.Entry,你可以使用Gtk.ComboBox继承的get_child
方法(来自Gtk.Bin)。然后你可以使用Gtk.Entry set_text
方法,例如:
name_combo = Gtk.ComboBox.new_with_model_and_entry(name_store)
name_combo.connect("changed", self.on_name_combo_changed)
name_combo.set_entry_text_column(1)
name_combo.get_child ().set_text ("Hello World") # <-------------- HERE
vbox.pack_start(name_combo, False, False, 0)
如果您更改上面显示的示例,当您运行它时,Gtk.Entry会将文本显示为已设置。
虽然文本不在模型中。