首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Ubuntu12.04中使用Python AppIndicator检测系统托盘中的滚轮信号

在Ubuntu12.04中使用Python AppIndicator检测系统托盘中的滚轮信号
EN

Stack Overflow用户
提问于 2013-04-28 12:03:38
回答 1查看 1.2K关注 0票数 0

我试图让这段python代码在鼠标悬停在托盘图标上并滚动鼠标滚轮时做出反应,但我在网上找不到任何示例。这是我到目前为止所拥有的,它不会对滚动滚轮做出反应...

代码语言:javascript
运行
复制
#!/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()

如何检测滚轮移动?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-03 23:22:43

这是连接到鼠标滚动事件的正确方法,代码在两个12.04系统上进行了测试。然而,可能有一个bug,因为在其中一个上运行的最初几个测试也不起作用,但随后就没问题了。

如果你是从头开始的,我建议你使用pygobject (Gtk3)而不是pygtk (Gtk2),因为它已经不再开发了。作为测试的一部分,我确实将您的脚本转换为pygobject,并修复了显示菜单的问题:

代码语言:javascript
运行
复制
#!/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()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16259481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档