0

次のスニペットを見てください。

    import gtk

    def callback(widget, x, y, keyboard_mode, tooltip):
        hbox = gtk.HBox(False, 8)
        button = gtk.Button('Exit Tooltip')
        label = gtk.Label('Tooltip text')
        hbox.pack_start(label)
        hbox.pack_start(button)
        hbox.show_all()
        tooltip.set_custom(hbox)
        return True

    label = gtk.Label('Test label')
    label.set_has_tooltip(True)
    label.connect('query-tooltip', callback)

ここでは、閉じるボタンを含むカスタムツールチップを作成しました。今、私はその閉じるボタンをクリックするまでそのままにしておきたいです。グーグルで検索してもあまり役に立ちませんでした。さらに、ツールチップが閉じられたときに発行されるシグナル/イベントも知りたいです。

同様の問題は、JQuery/JavaScript/Ajaxツールチップなどではスムーズに処理されますが、gtk/pygtkでは運がありません :(

前もって感謝します ...

4

1 に答える 1

0

私もこの問題を抱えていましたが、私の知る限り、ツールチップが表示される時間を決定する方法はありません。

私がやったこと (そしてあなたにお勧めすること) は、独自の「ツールチップ」を作成し、その背景色をイベントボックスを介して黄色または任意の色に設定することです。まだ表示されていないことを確認してください。これは単純化されたコードにすぎません。これは、プロジェクト内で自分で配置およびサイズ変更する必要があるためです。

color = gtk.gdk.rgb_get_colormap().alloc_color('black')
ebTooltip = gtk.EventBox()
btnTooltip = gtk.Button("Close")
ebTooltip.add(btnTooltip)
ebTooltip.modify_bg(gtk.STATE_NORMAL, color)

ここで、コールバックを介してこのイベントボックスを非表示および表示する必要があります。それを表示するには、電話...

ebTooltip.show()

そして、それを非表示にするには(おそらく閉じるボタンの「クリック」イベントで)...

ebTooltip.hide()

問題が解決することを願っています。

于 2011-11-21T23:48:36.230 に答える