2012-03-13 4 views
2

コンボボックスの個々のエントリにツールチップを追加する方法はありますか?私はそれがコンボボックスが開いているとき(そしてそれが開いているときだけ)、そして可能な選択肢の1つ上のユーザマウスを追加すると、ツールチップに追加情報が表示されるようにしたいと思います。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)