2012-03-13 76 views
2

有什麼方法可以將工具提示添加到組合框的單個條目中?我喜歡它,所以當組合框打開時(並且只有當它打開時),並且用戶將鼠標置於其中一個可能的選擇上時,附加信息將顯示在工具提示中。將工具提示添加到GTK ComboBox中的條目中?

似乎在組合框中沒有任何真實的小工具來添加工具提示。 唯一能做到這一點的方法就是將小部件(如標籤)放在組合框的條目中?

回答

0

我認爲你在正確的軌道上將標籤放在組合框中並向標籤添加工具提示。您可以爲包含標籤的組合框創建自定義列表存儲。這是一個嘗試,不是在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)