一起运行 Tkinter 窗口和 PysTray 图标

2024-03-04

我正在构建一个 tkinter gui 项目,并且正在寻找使用 tkinter 窗口运行托盘图标的方法。
我发现 Pystray 库可以做到这一点,但现在我正在尝试弄清楚如何将这个库(托盘图标)与 tkinter 窗口一起使用,
我设置了当用户退出窗口时它只会退出窗口:
self.protocol('WM_DELETE_WINDOW', self.withdraw)
我想用托盘图标将其带回来..有人知道该怎么做吗?
编辑:到目前为止,我刚刚编写了这段代码(它们没有一起运行,但也很好):

from pystray import MenuItem as item
import pystray
from PIL import Image
import tkinter as tk

def quit_window(icon, item):
    icon.stop()
    #window.destroy()

def show_window(icon, item):
    icon.stop()
    #window.deiconify()

def withdraw_window(window):    
    window.withdraw()
    image = Image.open("image.ico")
    menu = (item('Quit', quit_window), item('Show', show_window))
    icon = pystray.Icon("name", image, "title", menu)
    icon.run()

def main():
    window = tk.Tk() 
    window.title("Welcome")
    window.protocol('WM_DELETE_WINDOW', lambda: withdraw_window(window))
    window.mainloop()
main()

终于我明白了
现在我只需要把它与我的主要代码结合起来,我希望这个代码也对其他人有帮助......

from pystray import MenuItem as item
import pystray
from PIL import Image
import tkinter as tk

window = tk.Tk()
window.title("Welcome")

def quit_window(icon, item):
    icon.stop()
    window.destroy()

def show_window(icon, item):
    icon.stop()
    window.after(0,window.deiconify)

def withdraw_window():  
    window.withdraw()
    image = Image.open("image.ico")
    menu = (item('Quit', quit_window), item('Show', show_window))
    icon = pystray.Icon("name", image, "title", menu)
    icon.run()

window.protocol('WM_DELETE_WINDOW', withdraw_window)
window.mainloop()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一起运行 Tkinter 窗口和 PysTray 图标 的相关文章

  • Python BigQuery 存储。并行读取多个流

    我有以下玩具代码 import pandas as pd from google cloud import bigquery storage v1beta1 import os import google auth os environ G
  • 如何在python中读取多个文件中的文本

    我的文件夹中有许多文本文件 大约有 3000 个文件 每个文件中第 193 行是唯一包含重要信息的行 我如何使用 python 将所有这些文件读入 1 个文本文件 os 模块中有一个名为 list dir 的函数 该函数返回给定目录中所有文
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 从 scikit-learn 导入 make_blobs [重复]

    这个问题在这里已经有答案了 我收到下一个警告 D Programming Python ML venv lib site packages sklearn utils deprecation py 77 DeprecationWarning
  • 在循环中每次迭代开始时将变量重新分配给原始值(在循环之前定义)

    在Python中 你使用 在每次迭代开始时将变量重新分配给原始值 在循环之前定义 时 也就是说 original 1D o o o for i in range 0 3 new original 1D revert back to orig
  • IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

    我正在运行风暴拓扑 pyleus verbose local xyz topology jar using storm 1 0 0 pyleus 0 3 0 centos 6 6并得到错误 线程 main java lang NoClass
  • 如何将交互式 matplotlib 图形插入 tkinter 画布

    我正在尝试将交互式 matplotlib 图形 具有滑块 重置按钮和单选按钮的图形 放入 tkinter Canvas 中 我已成功添加非交互式图表 但当它变为交互式时找不到问题 我尝试将所有内容更改为使用 matplotlib Figur
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代

随机推荐

  • VarBinary 与 Image SQL Server 数据类型存储二进制数据?

    我需要将二进制文件存储到 SQL Server 数据库 Varbinary 和 Image 中哪种数据类型更好 由于图像已被弃用 您应该使用 varbinary per 微软 http msdn microsoft com en us li
  • 无锁堆栈 - 这是 c++11 宽松原子的正确用法吗?可以证明吗?

    我已经为需要跨线程同步的非常简单的数据编写了一个容器 我想要顶级的表现 我不想使用锁 我想使用 宽松 的原子 部分是为了增加一点额外的魅力 部分是为了真正理解它们 我已经为此做了很多工作 现在这段代码通过了我对其进行的所有测试 但这并不完全
  • pytest django:无法访问固定装置拆卸中的数据库

    我需要在使用夹具后显式删除它 我知道 pytest django 默认情况下会在拆卸时删除所有对象 但在这种特殊情况下 我需要手动执行此操作 然而 虽然我的测试被标记为pytest mark django db 我能够创建一个夹具 但在经过
  • JBoss7 + PostgreSQL 新的缺失/不满足的依赖关系

    我正在将项目从 JBoss3 迁移到 JBoss7 我昨天才开始重新配置我的standalone xml module xml 和persistence xml 在 JBoss 模块文件夹中 我创建了 org postgres main 目
  • 有什么方法可以解决 C4772 错误而无需注册 DLL?

    我正在维护一个 VS2010 项目 其中有许多交叉引用的 COM 库 我正在尝试配置该项目 使其可以从安装了 VS2010 的随机工作站构建 工作站可以是 32 位和 64 位 因此如果我将项目配置为 注册输出 则构建将无法在 32 位计算
  • 删除 struts 2 中的转换验证消息或使其通用

    在我的 struts2 应用程序中 我有一个名为 CarrierNo 的字段 它接受整数 当我将字符串放入其中时 会给出以下验证错误消息 Invalid field value for field carrierNo 我可以像这样在属性文件
  • 有没有一种简单的方法来计算两个数组之间的差异[重复]

    这个问题在这里已经有答案了 我正在尝试计算 Swift 中两个数组中值之间的差异 我想减去两个数组之间每个索引处的值 我尝试执行以下操作 var array1 Double 1 2 3 4 5 var array2 Double 2 3 4
  • 存储过程的命名约定是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 GitHub 上使用 Laravel 包的 PR?

    当我想在 GitHub 上对 Laravel 包发出拉取请求时 我会按以下方式进行操作 创建新的 Laravel 项目 需要并安装包 从供应商文件夹中的项目中删除附加文件 Fork GitHub 并将文件克隆到项目文件夹中 更改打包并测试所
  • AJAX DJango 从多个文件字段获取文件

    我正在使用 AJAX 和 DJango 进行多个文件上传 但遇到问题 如何从字段输入获取文件并将其推送到data HTML
  • NLTK 使用语料库标记西班牙语单词

    我正在尝试学习如何使用 NLTK 标记西班牙语单词 来自NLTK书 http nltk org book ch05 html 使用它们的示例来标记英语单词非常容易 因为我对 nltk 和所有语言处理都很陌生 所以我对如何进行感到非常困惑 我
  • 在 Java 中分割命令行

    在 Java 中解析类似 shell 的命令行的推荐方法是什么 我的意思并不是说在选项已经处于数组形式时处理选项 例如处理 x 等 已经有很多关于此的问题和答案 不 我的意思是把完整的命令字符串分割成 令牌 我需要转换一个字符串 例如 us
  • 如何在 django 模板中减去两个 datetime.time 值,以及如何将持续时间格式化为小时、分钟

    在 django 应用程序中 我发送了一个列表Entry对象到模板 每个Entry对象有一个开始时间和结束时间 它们是 datetime time 值 从TimeFields在表单上 在列出条目对象时 我需要显示每个条目的持续时间 在模型中
  • 将 UserControl 序列化为 xaml,但不序列化其子控件?

    NET 4 0 中的 XAML 序列化堆栈进行了相当多的更改 其中一项更改是 当序列化 UserControl 时 您不仅可以获得控件本身 还可以获得其所有子控件 var sb new StringBuilder var writer Xm
  • 创建链接服务器和数据库别名

    我有两台服务器 Server1 和 Server2 在两台服务器上我都有一个名为 QAI 的数据库 有没有一种方法可以创建一个链接服务器 其别名从 Server2 到 Server1 而不是 服务器1 QAI dbo tbBlah 将其别名
  • 使用 Windows 调度程序运行 jar 文件

    我有 jar 文件 我想从 Windows 7 中的 Windows 调度程序运行该文件 我已经给出了路径java exe在路径 脚本中和 jar c abc ab jar在参数字段中 但它不运行 我也曾在bat文件的帮助下尝试过 但它无法
  • Bash:在 OS X 下查找字符串中字符的位置

    有没有办法找到字符串中第一个字符的位置Bash under Mac OS X 就像是 stringZ abcABC123ABCabc 6 echo expr index stringZ C12 C position 如中所述高级 Bash
  • 如何在 Python 中重新运行代码?

    我有这个单词解扰器游戏 仅在 CMD 或 python shell 中运行 当用户正确或错误地猜测单词时 它会显示 按任意键再次播放 我怎样才能让它重新开始 在评估用户的输入后不要让程序退出 相反 在循环中执行此操作 例如 一个甚至不使用函
  • CSS:在同一行有3个div,中间的div占据剩余空间

    我正在构建一个工具栏 我希望以下示例中的黄色部分占据整个左侧空间 白色 http jsfiddle net MWjGH 1 http jsfiddle net MWjGH 1 div class left Some content div
  • 一起运行 Tkinter 窗口和 PysTray 图标

    我正在构建一个 tkinter gui 项目 并且正在寻找使用 tkinter 窗口运行托盘图标的方法 我发现 Pystray 库可以做到这一点 但现在我正在尝试弄清楚如何将这个库 托盘图标 与 tkinter 窗口一起使用 我设置了当用户