好吧,与其继续在wxPython和这个Phoenix胡说八道的项目上混日子,我改成只使用PyGTK,我不得不说,总的来说,我更喜欢这个。我的代码现在正按照我希望的方式运行,如下所示:#!/usr/bin/python

import gobject

import gtk

import os

import thread

import time

last_changed_time = 0

mode = "nice"

def set_mode (new_mode):

global mode

mode = new_mode

change_wall()

def make_menu(event_button, event_time, data=None):

menu = gtk.Menu()

nice_item = gtk.CheckMenuItem("Nice")

naughty_item = gtk.CheckMenuItem("Naughty")

kill_item = gtk.MenuItem("Quit")

if mode == "nice":

nice_item.set_active(True)

if mode == "naughty":

naughty_item.set_active(True)

menu.append(nice_item)

menu.append(naughty_item)

menu.append(kill_item)

nice_item.connect_object("activate", set_mode, ("nice"))

naughty_item.connect_object("activate", set_mode, ("naughty"))

kill_item.connect_object("activate", gtk.main_quit, ())

nice_item.show()

naughty_item.show()

kill_item.show()

menu.popup(None, None, None, event_button, event_time)

def change_wall():

global last_changed_time

os.system("./change_wall " + mode)

last_changed_time = time.time()

def on_right_click(data, event_button, event_time):

make_menu(event_button, event_time)

def on_left_click(event):

change_wall()

def auto_update():

while 1:

time.sleep(1)

if time.time() > last_changed_time + 600:

change_wall()

if __name__ == '__main__':

gobject.threads_init()

os.chdir("/home/caleb/walls")

icon = gtk.status_icon_new_from_file("walls.xpm")

icon.connect('popup-menu', on_right_click)

icon.connect('activate', on_left_click)

change_wall()

thread.start_new_thread(auto_update, ())

gtk.main()

我不得不插入时间。睡觉(1) 每次检查前打电话,看看是否该自动更新,以防止图标/菜单本身变得相当滞后。我在使用wx时从未遇到过这个问题;有没有更优雅的方法来解决这个问题?在

再次感谢您的帮助!在

python 图标拖_托盘图标在Python中的应用,图标是gon相关推荐

  1. python优化网站_[练习] 用PYTHON来优化网站中的图片

    我到公司以来,第一次加班,哇,加一晚上加一上午,现在还没下班的迹象,555,困. 对于网站中的一些关键的页面,多重缓存.静态化.程序代码优化--之外,为了提高用户打开页面的速度,图片是必须要优化的. ...

  2. load python txt文件_详解Python中numpy.loadtxt()读取txt文件

    为了方便使用和记忆,有时候我们会把 numpy.loadtxt() 缩写成np.loadtxt() ,本篇文章主要讲解用它来读取txt文件. 读取txt文件我们通常使用 numpy 中的 loadtx ...

  3. python turtle 绘图_谈一下Pycharm中关联系统Python解释器的方法

    大家知道,PyCharm是一款著名的Python IDE开发工具,是拥有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,具备基本的调试.语法高亮.Project管理.代码跳转.智能提示 ...

  4. python 获取当前目录_如何在Python中获取当前的工作目录?

    python 获取当前目录 To get the current working directory in Python, there is a library function getcwd() i ...

  5. python日期迭代_计算敏捷项目中迭代时间安排(Python3版)

    节奏是敏捷开发的核心,保持合理固定的节奏,能有效的促使各个环节协调统一,高效运行.针对产品的不同周期,方案有所不同. 迭代开发.jpg 通常,我们需要在一个时间盒中去分配一个项目中不同阶段的时间,在项 ...

  6. python绝对导入_[编程基础] Python中的绝对导入与相对导入

    如果您从事的Python项目有多个文件,那么您以前可能不得不使用import语句.即使对于拥有多个项目的Python重度使用者(比如我),import也可能会造成混淆!您可能正在阅读本文,因为您想对P ...

  7. python 生成器 原理_你知道python中的函数、生成器的工作原理吗?

    1.python中函数的工作原理 python的解释器,也就是python.exe(c编写)会用PyEval_EvalFramEx(c函数)运行foo()函数 首先会创建一个栈帧(stack Fram ...

  8. python框架漏洞_注意!Python中的10个常见安全漏洞及修复方法

    编写安全的代码很困难,当你学习一门编程语言.一个模块或框架时,你会学习其使用方法.在考虑安全性时,你需要考虑如何避免代码被滥用,Python也不例外,即使在标准库中,也存在着许多糟糕的实例.然而,许多 ...

  9. eclipse配置python开发环境_如何在Eclipse中配置python开发环境

    展开全部 步骤1: 下载用于在2113Eclipse中开发Python的插件PyDev. 步骤2: 解压5261python.将解压后的features和plugins文件4102夹中的1653内容拷 ...

最新文章

  1. 一文看懂Modbus协议
  2. 利用rank函数实现自动排序
  3. 在CentOS下安装crontab服务
  4. html 首行缩进2个汉字
  5. python乘积函数_龙贝格求积公式(Python实现)
  6. 支持javascript的ppt软件_强大CSS3的3D幻灯片工具reveal.js(推荐)
  7. 191106_爬数据绘图
  8. 用于保存计算机输入输出数据的材料及其,与房地产,电子,金融,汽车并称五大产业的是()...
  9. 多进程服务器中,epoll的创建应该在创建子进程之后
  10. 【系统分析师之路】原创章节 重构与改善设计思维导图
  11. MATLAB生成M序列和Gold序列
  12. pdf文件怎么转换成图片?
  13. ReactOS 分析一
  14. Android开发新手入门总结(1)
  15. python进阶之路———文件处理
  16. Java+spring+springmvc 基于ssm的家乡特产销售系统#毕业设计
  17. 电影记忆之18(记忆碎片)
  18. 51单片机控制电动机正反转和调速
  19. 微信小程序iconfont的图标引入
  20. 提取DC综合report_constrain all violator中big neg slack

热门文章

  1. 基于Opencv实现连续检测yuv转bmp后的每一帧的sobel算法实现
  2. 百度网盘怎么分享文件(或加密或不加密)
  3. 方舟端游进服务器无限闪退,【求助】方舟一进服务器 过一会儿 闪退 弹白框求解...
  4. 下载流媒体的好工具http://www.souxin.com/stream-software-down.htm
  5. 《PyTorch深度学习实践》完结合集--B站刘二大人学习总结
  6. 读书笔记《不拘一格》
  7. Python爬虫之百度/360搜索关键字自动提交
  8. 不开通百度云会员也可以会员速度下载
  9. 单片机io口定义C语言,怎样把单片机的8个不同管脚定义成同一个IO口??
  10. 哀嚎遍野!学妹跟学弟分手了,因为JavaEE期末课设SSM太难了!呜呼哀哉!