2016-06-26 13 views
0

私はappindicatorとGtkで少しのアプリケーションを作ろうとしています。私の目標は、それらのURLへのリンクを持つサーバーのリストを表示することです。ここでPython:appindicatorのメニューにURLを追加する

は私がしようとするものである:

from gi.repository import Gtk as gtk 
from gi.repository import AppIndicator3 as appindicator 

def main(): 
    indicator = appindicator.Indicator.new(APPINDICATOR_ID, img, appindicator.IndicatorCategory.SYSTEM_SERVICES) 
    indicator.set_status(appindicator.IndicatorStatus.ACTIVE) 
    indicator.set_menu(build_menu()) 
    gtk.main() 

def build_menu(): 
    menu = gtk.Menu() 

    value = "label" 
    item = gtk.MenuItem() 
    button = gtk.LinkButton("http://url/host/id", label=value) 
    button.show() 

    item.add(button) 
    item.show() 

    menu.append(item) 
    menu.show_all() 

    return menu 

if __name__ == "__main__": 
    main() 

作業と私はエラーを持っていないということ。しかし、私はアプリケーションを起動する、私はアイテムだけでメニューがありますが、リンクはありません。

私はgtk.Windowで多くの例を見てきましたが、appindicatorのメニューでは何も表示されませんでした。

このメニューにはリンクがありますか?

ありがとうございました

答えて

0

私はこれを行う方法を見つけました。私はそれが最良の方法であるかどうかはわかりませんが、うまくいきます。 LinkItemを作成する代わりに

、私はURLを開くための機能を加えました:

def open_url(source): 
    webbrowser.open("http://url/host/id") 

をそして私はconnectで、後にそれを呼び出す:

item.connect("activate", open_url) 

私は私のアプリとクリックを実行します私の項目では、期待どおりにURLを開きます。ここでは、コードの作業の一部です:私は、ウェブ上で多くの記事で見たよう

def build_menu(): 
    menu = gtk.Menu() 

    value = "label" 
    item = gtk.MenuItem(value) 
    item.connect("activate", open_url) 

    menu.append(item) 
    menu.show_all() 

    return menu 

、appindicatorは通常のGtkアプリケーションに比べて限定された機能を持っています。

関連する問題