问题标签 [pystray]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 与 uvicorn asyncio 循环一起启动 Pysstray 循环的正确方法
我已经尝试了多种方法来做到这一点。并且仅在线程中启动 pystray 似乎不会阻止 uvicorn asyncio 操作。我想知道是否有办法使用 asyncio 启动另一个阻塞循环。
这块。无法访问任何服务。
这是迄今为止唯一有效的方法。当系统托盘设置为停止时,阻塞调用结束,所以我在这里终止进程。这将通过 hypercorn 启动应用程序。
系统托盘代码看起来像
python - tkinter Toplevel 窗口不会从系统托盘菜单打开
我正在尝试Toplevel
从系统托盘菜单中打开一个带有 tkinter 的窗口。
但不幸的是,这不起作用,它不会拉起顶层窗口,也不会拉起主窗口。如果我自己打开根窗口,顶层窗口将打开,但没有响应。
编辑 好吧,所以我尝试将顶窗添加为类,但我不断收到错误“顶部”对象没有属性“tk”。我在下面粘贴了更新的代码。任何帮助总是非常感谢!
顶部窗口仍然没有响应
不是在root打开时,而是当top自行打开时,它仍然没有响应。但是,当我单击按钮并拖动鼠标时,它会响应。我尝试在顶部添加一个主循环,但 aself.top.mainloop
和 aroot.mainloop
都不起作用。我尝试使用绑定,但它们也表现出相同的行为。
我在创造一些不起作用的东西吗?
我正在创建的应用程序是多线程的,我的问题是;这会使其他类的事情复杂化吗?我对编码很陌生,坦率地说,我不知道。对于任何感兴趣的人,我将整个项目放在一个 pastebin中。我认为这是一团糟,但对于初学者来说,我仍然为此感到自豪。
python - Python3、Pystray、谷歌日历 API。为子菜单拉日历 ID 时,我总是得到最后一个 ID
好的,所以我正在编写一个使用 pytray 创建系统托盘图标的脚本。该脚本基本上连接到用户谷歌日历,并且(好吧,最终无论如何)允许您选择要使用的日历并向您显示不同的即将发生的事件。
问题 #1 选择我想使用的日历时,我总是在选择日历时获得最后一个日历 ID。我的通讯录日历恰好是我日历列表中列出的最后一个。当我选择任何日历时,我总是会获得地址簿日历的 ID。
我认为与此问题有关的代码:
问题 #2(已修复)当使用 pystray 在系统托盘中创建我的日历列表时,是否有某种方法可以遍历我正在构建的元组并列出它?我必须手动输入元组中每个项目的索引才能列出菜单。有什么方法可以“动态/以编程方式”做到这一点吗?
更新问题 #2 我只需要 menu() 中的 lambda 函数来正确创建所有项目
与此问题相关的代码:
我认为最好知道一些事情:
我现在正在严格地为 Windows 编写这个。我稍后会扩展,也许嗯,现在不确定这只是一个“嘿,我可以做这个”的项目。
build_calendar_list() 为 pystray 的 MenuItem() 创建元组
create_tray() 创建托盘图标。
我正在 MyCalendar 类的 init 函数中构建日历列表。
我也可能这样做完全错误。
我认为问题在于,当它使用 lambda 函数生成列表时,无论出于何种原因,它都会导致回调的所有参数成为堆栈中的最后一项。如果是这种情况,那么生成此列表的更好方法是什么?
下面是完整的代码。
python - 使用 PyInstaller 时包含 Pystray 图标
我正在使用 PyInstaller 为我的 python 应用程序创建单个文件 exe。我还使用 Pystray 创建一个带有菜单的托盘图标。
直接运行脚本时它可以工作,但是当我使用 pyinstaller 时,我收到一个错误,即找不到“icon.png”。该文件位于我的项目目录的根目录中。
我试过 --add-data "icon.png;icon.png" 和 --add-data "icon.png;." 这些都没有帮助。
我还在几乎每个子目录中放置了 icon.png 文件的副本,只是为了看看它是否会尝试从其他地方引用它。
任何想法如何包含 png 文件
Python脚本:
命令:
或者:
python-3.x - 更改 Pytray 托盘通知图标图像标题
我在寻找更改托盘通知图标标题的方法时遇到问题。看起来没有从某个地方获取默认值“Python”。见下图:
在文档中,没有其他参数可以更改通知图标标题。如何找到将图标值更改为我想要的东西的方法?
工作代码示例:
Upd1:现在我想到一个想法,如果这个Python是从项目名称或程序名称等中获取的,那么我应该搜索或添加代码由于命名参数(Win10 OS)吗?