python - Python-GTK3 中的 set_text 在哪里设置输入文本?

标签 python python-2.7 combobox gtk gtk3

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

最佳答案

正如 @Rawing 评论的那样,问题有点困惑,但目标似乎是:在带有条目的 Gtk.ComboBox 上设置文本。

pyGTK 和 Gtk+ 2 有 set_title 方法。 Gtk+ 3 also had到版本 3.10 但正如评论的那样,它已被弃用。无论如何,该方法在两个版本上执行相同的操作,即:“将菜单的标题设置为撕纸模式”,这与条目无关。

指示的example使用带有模型的 Gtk.ComboxBox。要设置条目的内容,我们可以从模型中设置事件项目,Gtk.Entry 将通过显示同一项目的文本来反射(reflect)这一点。

如果将 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 将显示设置的文本。

文本不会出现在模型中。

关于python - Python-GTK3 中的 set_text 在哪里设置输入文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46500595/

相关文章:

css - 制作更小的 JavaFX ComboBox

python - 有没有办法连接 "list display"中的 2 个模型字段名称以在 Django Admin 中显示为一列?

R "here"包的 Python 等效项

python - 如何使用opencv获取扫描图像的边缘坐标?

Python 从 struct.unpack() 的输出解码 UTF-16

PHP-jquery 根据另一个组合框中的选择填充一个组合框?

c# - 如何创建组合框以在用户在 C# 的组合框中键入拼写时自动填充

python - Pandas 删除任何字符串的行

python - 正则表达式 (vim) 用于 print ... to print(...) 用于 python2 到 python3

python - 列出python中的重复数据串联