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

Posted

技术标签:

【中文标题】在 Python-GTK3 中设置条目文本的 set_text 在哪里?【英文标题】:Where is set_text to set an entry text in Python-GTK3? 【发布时间】:2017-09-30 07:32:33 【问题描述】:

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

【问题讨论】:

在标题中您说set_text,而问题正文中您将其更改为set_title。您要问的是哪个功能,该功能到底是做什么的?我从未听说过 GtkEntries 的 set_title 函数。 根据the docs,set_title 函数已被弃用(别无选择)。 【参考方案1】:

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

pyGTK 和 Gtk+ 2 有set_title 方法。 Gtk+ 3 also had 到 3.10 版,但正如评论所言,它已被弃用。无论如何,该方法在两个版本上都做了相同的事情,那就是:“Sets the menu's title in tearoff mode”,这与条目无关。

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

文本不会出现在模型中。

【讨论】:

什么是“撕纸模式”?您应该为 GTK3+/Python 编写文档 :) @NoBugs Tearoff 菜单是一种传统模式,您可以在其中分离一些 ui 项目,它们将拥有自己的窗口。 set title 方法用于在该模式下设置窗口的标题。检查已弃用的 tearoff menu item 描述。这种 ux 交互已慢慢停止和弃用。 :) 谢谢,祝你好运

以上是关于在 Python-GTK3 中设置条目文本的 set_text 在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

在 Plotly 3.0 中设置图例文本颜色

如何为 Tkinter 条目小部件设置默认文本

ActionScript 3 使用非标准字体在flash中设置文本样式的CSS

如何在Android中设置文本之间的延迟

mfc怎么修改静态文本控件文字颜色

如何在html网页中设置文本框为必填?