PyGTK穿线

2024-10-04 11:29:34 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我必须说,我已经在这个主题上搜索了很长时间,我可能知道最基本的资源。我试图使用这个:https://github.com/woodenbrick/gtkPopupNotify向以前所有的命令行程序添加一个通知系统。可悲的是,由于我执行了很多睡眠操作等原因,这通常会挂起。我假设如果我能在适当的地方设置一个线程系统,它就会工作。本质上,我只想发出一个通知,不干扰程序的任何其他操作,包括其他PyGTK组件。目前发出这些通知的函数如下所示:

    def showMessage(title, message):
        notifier1 = gtkPopupNotify.NotificationStack(timeout=4)
        notifier1.bg_color = gtk.gdk.Color("black")
        notifier1.fg_color = gtk.gdk.Color("white")
        notifier1.edge_offset_x = 5-27 #-27 for odd bugginess
        notifier1.edge_offset_y = 5
        notifier1.new_popup(title=title, message=message)

任何帮助都将非常感谢,因为我真的厌倦了这个问题。在


Tags: https程序messagegtk主题title系统资源
1条回答
网友
1楼 · 发布于 2024-10-04 11:29:34

对于PyGTK,我强烈建议完全避免线程。GTK库不是完全的thread-safe,在Win-32下,它们根本不支持线程。所以,和他们一起工作最终会很痛苦。你可以通过使用Python generatorsgobject.idle_add() method“伪造”来获得一些非常好的结果

除了自己编写,您还可以使用Zenity,这是一个Gnome程序,用于从命令行启动通知对话框。这应该是线程安全的。在

import subprocess
subprocess.call(["zenity", " notification", " text=You have been notified"])

相关问题 更多 >