如何制作正确的只读PyGTK文本条目?

时间:2011-05-27 00:19:11

标签: gtk pygtk

我正在尝试创建一个包含用户应该能够复制但不能更改的短文本输出的小部件。这就是我想出来的:

entry = gtk.Entry()
entry.set_property("editable", False)
entry.unset_flags(gtk.CAN_FOCUS)

它有效,但该条目看起来仍然可以编辑,从用户的角度来看这看起来很糟糕。 我尝试了entry.set_sensitive(False),但这都会阻止复制,并使其看起来完全禁用。

我想知道如何制作一个正确的只读文本条目,该条目已变灰但仍处于活动状态。

编辑:Here's我正在谈论的图像,虽然不是GTK(我在GNOME环境中工作)。

编辑2:开始看起来似乎没有正确的方法来使用GTK,如果有人可以确认这一点,我会标记问题已解决。

3 个答案:

答案 0 :(得分:6)

您可以使用可选择的Label并使用环绕模式(如果文本超过一行)

label = gtk.Label('multi line text')
label.set_selectable(True)
label.set_line_wrap_mode(True)

答案 1 :(得分:2)

我通常会关闭斜面框架,使其看起来更像标签,但仍然可以选择。

GTKEntry without frame

(在图片中,等号右侧有一个方框。这里很难看到,但在我的程序中总是有文字,所以很清楚。)

我在Glade中这样做,但方法是GTKEntry.set_has_frame()

答案 2 :(得分:0)

要将其设为灰色,请尝试entry. modify_text()