gpt4 book ai didi

python - 为什么在启动程序时我的通知区域图标不显示?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:41 25 4
gpt4 key购买 nike

我正在编写一个显示和更新通知区域图标的小型 pyGTK 应用程序。代码如下:

#!/usr/bin/env python2
from __future__ import division

import pygtk
pygtk.require('2.0')
import gtk
from time import time
from math import floor
gtk.gdk.threads_init()
import gobject

#Parameters
MIN_WORK_TIME = 60 * 10 # min work time in seconds

class Pomodoro:
def __init__(self):
self.icon=gtk.status_icon_new_from_file("idle.svg")
self.icon.set_tooltip("Idle")
self.state = "idle"
self.tick_interval=10 #number of seconds between each poll
self.icon.connect('activate',self.icon_click)
self.icon.set_visible(True)
self.start_working_time = 0
def format_time(self,seconds):
minutes = floor(seconds / 60)
if minutes > 1:
return "%d minutes" % minutes
else:
return "%d minute" % minutes
def set_state(self,state):
old_state=self.state
self.icon.set_from_file(state+".svg")
if state == "idle":
delta = time() - self.start_working_time
if old_state == "ok":
self.icon.set_tooltip("Good! Worked for %s." %
self.format_time(delta))
elif old_state == "working":
self.icon.set_tooltip("Not good: worked for only %s." %
self.format_time(delta))
else:
if state == "working":
self.start_working_time = time()
delta = time() - self.start_working_time
self.icon.set_tooltip("Working for %s..." % self.format_time(delta))
self.state=state
def icon_click(self,dummy):
delta = time() - self.start_working_time
if self.state == "idle":
self.set_state("working")
else:
self.set_state("idle")
def update(self):
"""This method is called everytime a tick interval occurs"""
delta = time() - self.start_working_time
if self.state == "idle":
pass
else:
self.icon.set_tooltip("Working for %s..." % self.format_time(delta))
if self.state == "working":
if delta > MIN_WORK_TIME:
self.set_state("ok")
source_id = gobject.timeout_add(self.tick_interval*1000, self.update)
def main(self):
# All PyGTK applications must have a gtk.main(). Control ends here
# and waits for an event to occur (like a key press or mouse event).
source_id = gobject.timeout_add(self.tick_interval, self.update)
gtk.main()

# If the program is run directly or passed as an argument to the python
# interpreter then create a Pomodoro instance and show it
if __name__ == "__main__":
app = Pomodoro()
app.main()

当我从终端启动它时它工作正常,但是当我在我的图形 session 开始时启动它时没有显示图标(如果这很重要,我正在使用 KDE)。

知道会发生什么吗?他们是我的代码有问题,还是 KDE 中的错误?

最佳答案

您是否尝试从/home/username 目录的子目录启动应用程序?我想知道您是否需要在代码中包含图像文件的完整路径

关于python - 为什么在启动程序时我的通知区域图标不显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5770663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com