python 图标拖_托盘图标在Python中的应用,图标是gon
好吧,与其继续在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相关推荐
- python优化网站_[练习] 用PYTHON来优化网站中的图片
我到公司以来,第一次加班,哇,加一晚上加一上午,现在还没下班的迹象,555,困. 对于网站中的一些关键的页面,多重缓存.静态化.程序代码优化--之外,为了提高用户打开页面的速度,图片是必须要优化的. ...
- load python txt文件_详解Python中numpy.loadtxt()读取txt文件
为了方便使用和记忆,有时候我们会把 numpy.loadtxt() 缩写成np.loadtxt() ,本篇文章主要讲解用它来读取txt文件. 读取txt文件我们通常使用 numpy 中的 loadtx ...
- python turtle 绘图_谈一下Pycharm中关联系统Python解释器的方法
大家知道,PyCharm是一款著名的Python IDE开发工具,是拥有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,具备基本的调试.语法高亮.Project管理.代码跳转.智能提示 ...
- python 获取当前目录_如何在Python中获取当前的工作目录?
python 获取当前目录 To get the current working directory in Python, there is a library function getcwd() i ...
- python日期迭代_计算敏捷项目中迭代时间安排(Python3版)
节奏是敏捷开发的核心,保持合理固定的节奏,能有效的促使各个环节协调统一,高效运行.针对产品的不同周期,方案有所不同. 迭代开发.jpg 通常,我们需要在一个时间盒中去分配一个项目中不同阶段的时间,在项 ...
- python绝对导入_[编程基础] Python中的绝对导入与相对导入
如果您从事的Python项目有多个文件,那么您以前可能不得不使用import语句.即使对于拥有多个项目的Python重度使用者(比如我),import也可能会造成混淆!您可能正在阅读本文,因为您想对P ...
- python 生成器 原理_你知道python中的函数、生成器的工作原理吗?
1.python中函数的工作原理 python的解释器,也就是python.exe(c编写)会用PyEval_EvalFramEx(c函数)运行foo()函数 首先会创建一个栈帧(stack Fram ...
- python框架漏洞_注意!Python中的10个常见安全漏洞及修复方法
编写安全的代码很困难,当你学习一门编程语言.一个模块或框架时,你会学习其使用方法.在考虑安全性时,你需要考虑如何避免代码被滥用,Python也不例外,即使在标准库中,也存在着许多糟糕的实例.然而,许多 ...
- eclipse配置python开发环境_如何在Eclipse中配置python开发环境
展开全部 步骤1: 下载用于在2113Eclipse中开发Python的插件PyDev. 步骤2: 解压5261python.将解压后的features和plugins文件4102夹中的1653内容拷 ...
最新文章
- C++列表初始化容器
- 20145202 《信息安全系统设计基础》第8周学习总结
- C++:undefined reference to vtable 原因与解决办法 [转]
- 软件测试用例项目写作,通用测试用例写作方法
- Spring Cloud 入门 之 Feign 篇(三)
- 699 - The Falling Leaves
- 测试基础-07-测试报告编写
- java队列,ArrayBlockingQueue
- MFC总结之CListCtrl用法及技巧
- 2019必学的10大顶级Python库!
- 注塑模设计必懂的知识
- 前端三件套之CSS(二)
- Aria2远程下载方案部署(CentOS7+Aria+AriaNG+Nginx)
- HackTheBox——Beep
- 【Hyper-V】Windows10家庭版安装Hyper-V虚拟机
- CUDA:CUDA内核中内联PTX(汇编语言)用法的实例
- 流辰信息微服务平台:数字化转型的优良工具!
- TensorFlow常用函数tf.where()、tf.gather()、tf.squeeze()详解!!
- 关闭Windows XP系统Beep提示音
- Android 自定义RecycleView实现多级树(类似qq分组列表)
热门文章
- 动态规划6:买卖股票 I II III IV 冷却,共5题
- 矿大计算机考研学硕,【经验贴】2020中国矿业大学(北京)会计学学硕考研经验...
- 手部姿态检测(按视频段)_v3(hcn)
- 荧光染料标记蛋白质,Cy3/Cy5.5/Cy7-BSA/HAS/Transferrin/Concanavalin A/Casein/Ovalbumin
- 计算机程序设计python的作业_2020高校邦《百度凤巢沙盒系统营销实践》单元测试答案2020中国大学《计算机程序设计(Python)》作业题库...
- Postman:传递的参数是List类型时 传参格式的写法
- 不规则现金流 java设计_第三节不规则现金流的计算
- 洛谷 P1618 三连击(升级版)
- 【Java】高并发-JUC:JUC中的Condition对象
- Google AIY 套件将亮相香港!人工智能新一轮风潮袭来!