Python GTK+ 3 中的可编辑标签?

Editable label in Python GTK+ 3?

我是 GTK 编程新手。我想要一个可以编辑其文本的标签小部件,有点像这样:https://docs.gtk.org/gtk4/class.EditableLabel.html.

问题是我不知道如何实现它。我知道 Gtk.Button 有一个 set_label() 功能,但我不知道如何使用它来制作可编辑标签。

您可以使用 Gtk.Entry 来做到这一点,您可以 set_editable 基于“某事”。带有复选按钮的示例如下所示:

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk


def on_editable_toggled(button, entry):
    value = button.get_active()
    entry.set_editable(value)
    entry.set_sensitive(value)
    

win = Gtk.Window()
win.connect("destroy", Gtk.main_quit)

vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6)
win.add(vbox)

entry = Gtk.Entry()
entry.set_text("Hello World")

vbox.pack_start(entry, True, True, 0)

check_editable = Gtk.CheckButton(label="Editable")
check_editable.connect("toggled", on_editable_toggled, entry)
check_editable.set_active(True)

vbox.pack_start(check_editable, True, True, 0)

win.show_all()
Gtk.main()

它看起来不像标签,但您可以使用 Gtk CSS styling 更改背景和边框颜色,使其在设置为不可编辑时看起来像标签。