2013-04-28 162 views
0

檢測使用Python AppIndicator在系統托盤滾輪信號,我試圖讓這個Python代碼當鼠標懸停在任務欄圖標和滾動鼠標滾輪反應,我找不到任何在線的例子。這是我迄今爲止,它不反應滾動輪...在Ubuntu 12.04

#!/usr/bin/python 

APPNAME = "My App" 
ICON = "/usr/share/pixmaps/firefox.png" 

import appindicator as AI 
import gtk 


def sayhello(item): 
    print "menu item selected" 


def scroll(aai, ind, steps): 
    print "hello" # doesn't print anything 


def makemenu(): 
    ' Set up the menu ' 
    menu = gtk.Menu() 
    check = gtk.MenuItem('Check') 
    exit = gtk.MenuItem('Quit') 
    check.connect('activate', sayhello) 
    exit.connect('activate', gtk.main_quit) 
    menu.append(check) 
    menu.append(exit) 
    return menu 


def startapp(): 
    ai = AI.Indicator(APPNAME, ICON, AI.CATEGORY_APPLICATION_STATUS) 
    ai.set_status(AI.STATUS_ACTIVE) 
    ai.connect("scroll-event", scroll) 
    ai.set_menu(makemenu()) 
    gtk.main() 

startapp() 

如何檢測滾輪的運動?

+0

謝謝測試,你是正確的,它的工作,我剛纔跟GNOME面板測試,它工作正常。我以前在開羅/ GLX碼頭使用通知區,必須是一個錯誤。如果您想提交您的評論作爲答案,我會將其標記爲已接受的答案。 – 2013-05-03 02:34:48

回答

3

這是連接到鼠標的滾動事件的正確方法和代碼沒有工作,兩個系統12.04測試。可能有一個錯誤,但是其中一個的前幾個測試運行也不起作用,但後來很好。

如果你是從頭開始,我會建議使用pygobject(Gtk3),而不是pygtk的(Gtk2的視覺),因爲它不再開發開始。作爲測試的一部分,我沒有轉換你的腳本pygobject和固定的顯示菜單:

#!/usr/bin/env python 

APPNAME = "My App" 
ICON = "/usr/share/pixmaps/firefox.png" 

from gi.repository import AppIndicator3 as AI 
from gi.repository import Gtk 

def sayhello(item): 
    print "menu item selected" 

def scroll(aai, ind, steps): 
    print "hello" # doesn't print anything 

def makemenu(): 
    ' Set up the menu ' 
    menu = Gtk.Menu() 
    check_item = Gtk.MenuItem('Check') 
    exit_item = Gtk.MenuItem('Quit') 
    check_item.connect('activate', sayhello) 
    check_item.show() 
    exit_item.connect('activate', Gtk.main_quit) 
    exit_item.show() 
    menu.append(check_item) 
    menu.append(exit_item) 
    menu.show() 
    return menu 

def startapp(): 
    ai = AI.Indicator.new(APPNAME, ICON, AI.IndicatorCategory.HARDWARE) 
    ai.set_status(AI.IndicatorStatus.ACTIVE) 
    ai.set_menu(makemenu()) 
    ai.connect("scroll-event", scroll) 
    Gtk.main() 

startapp() 
+0

再次感謝!並感謝pygobject的例子。我已經測試過你的例子,並且它在gnome-panel中可以正常工作,但開羅Dock 3.2.1似乎無視滾輪運動。 – 2013-05-03 17:04:03

+0

剛一說明,我使用的是Xubuntu,並滾動(AAI =無,IND =無,步驟=無)使得它的工作(那種)更換滾動(AAI,IND,步驟)。 – daboross 2013-10-06 08:30:44