Skip to main content
 首页 » 编程设计

python之将工具提示添加到 GTK ComboBox 中的条目

2025年05月04日7lhb25

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

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

请您参考如下方法:

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

实际上,让 gtkcombobox 显示小部件(而不仅仅是文本)似乎是可能的,但很困难 - 参见 here例如。它可能需要一个不属于基础库的自定义 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)