为GTK组合框中的条目添加工具提示?

问题描述 投票:3回答:1

有沒有辦法將工具提示添加到combobox的個別項目中? 我希望当组合框打开的时候(只有当它打开的时候),用户把鼠标放在可能的选择上,额外的信息就会显示在一个工具提示中。

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

python combobox gtk pygtk tooltip
1个回答
3
投票

我认为你在组合框中放置标签并为标签添加工具提示的做法是正确的。 你可以为包含标签的组合框创建一个自定义列表存储。 这是一个尝试,不是在pygtk中,而是在guile-gnome中(我的母语环境,对不起!我以后可能会尝试翻译成pygtk),它可以运行,但还不正确,标签没有被显示。

事实上,让gtkcombobox显示小部件(而不仅仅是文本)似乎是可能的,但很困难--请参见 此处 例如,它可能需要一个不属于基础库的自定义GtkCellRendererWidget类。 它可能需要一个自定义的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)
© www.soinside.com 2019 - 2024. All rights reserved.