set_text在Python-GTK3中设置条目文本在哪里?

时间:2017-09-30 07:32:33

标签: python python-2.7 combobox gtk gtk3

在之前的pyGTK中,您可以使用combobox.set_title(text)来设置输入组合框的文本。现在在Python-GTK3中它似乎不起作用,example不包括设置它。在这种情况下是否有新方法来设置选择?

1 个答案:

答案 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会将文本显示为已设置。

虽然文本不在模型中。