将工具提示添加到GTK组合框中的条目中



有没有办法将工具提示添加到组合框的各个条目中?我希望这样,当组合框打开时(并且只有当它打开时),用户将鼠标悬停在其中一个可能的选择上,其他信息就会显示在工具提示中。

组合框中似乎没有任何真正的小部件可以添加工具提示。这样做的唯一方法是在组合框的条目中以某种方式放置小部件(如标签)吗?

我认为在组合框中放置标签并在标签中添加工具提示是正确的。您可以为包含标签的组合框创建一个自定义列表存储。这是一次尝试,不是在pygtk中,而是在guile gnome中(对不起,我的原生栖息地!我稍后可能会尝试翻译成pygtk)。它运行,但还不正确,标签没有显示。

事实上,让gtkcombobox显示小部件(而不仅仅是文本)似乎是可能的,但很难——例如,请参阅此处。它可能需要一个不属于基本库的自定义GtkCellRendererWidget类。

(use-modules (oop goops)
         (gnome gtk))
(define w (make <gtk-window> #:title "combo demo"))
(connect w 'destroy (lambda args (gtk-main-quit)))
(define combo (make <gtk-combo-box>))
(define list-store (gtk-list-store-new `(,<gtk-label>)))
(set combo 'model list-store)
(define tooltips (gtk-tooltips-new))
(define (list-store-append-label-with-tooltip list-store text tip)
  (let ((label (make <gtk-label> #:label "hello")))
    (gtk-tooltips-set-tip tooltips label tip #f)
    (gtk-list-store-set-value
     list-store
     (gtk-list-store-append list-store)
     0
     label)))
(list-store-append-label-with-tooltip list-store "hello" "first word")
(list-store-append-label-with-tooltip list-store "world" "second word")
(add w combo)
(show-all w)
(gtk-main)

最新更新