Python 如何在状态图标上显示文本而不是设置图标?
我是Gtk和Python的初学者。我正在尝试创建一个gtk.StatusIcon,它显示一个文本字符串来代替图标。我如何使用PixBuf或任何其他方法来实现这一点Python 如何在状态图标上显示文本而不是设置图标?,python,gtk,pygtk,Python,Gtk,Pygtk,我是Gtk和Python的初学者。我正在尝试创建一个gtk.StatusIcon,它显示一个文本字符串来代替图标。我如何使用PixBuf或任何其他方法来实现这一点 谢谢。这是可能的-我想到了两个想法: a、 )使用屏幕外的GtkLabel,然后调用gdk_pixbuf_get_from_drawable(gtk_widget_get_snapshot(label))(GdkPixmap是GdkDrawable)。这将执行XGetImage以从X服务器获取像素 b、 )或者您可以使用Cairo向p
谢谢。这是可能的-我想到了两个想法: a、 )使用屏幕外的GtkLabel,然后调用
gdk_pixbuf_get_from_drawable(gtk_widget_get_snapshot(label))
(GdkPixmap是GdkDrawable)。这将执行XGetImage以从X服务器获取像素
b、 )或者您可以使用Cairo向pixbuf绘制文本-这是GNOME中用于键盘状态图标的技术:使用Python和GTK3的示例:
from gi.repository import Gtk
class TextStatusIcon:
def __init__(self):
self.statusicon = Gtk.StatusIcon()
self.statusicon.connect("popup-menu", self.right_click_event)
window = Gtk.OffscreenWindow()
window.add(Gtk.Label("text"))
window.connect("damage-event", self.draw_complete_event)
window.show_all()
def draw_complete_event(self, window, event):
self.statusicon.set_from_pixbuf(window.get_pixbuf())
def right_click_event(self, icon, button, time):
Gtk.main_quit()
TextStatusIcon()
Gtk.main()
不幸的是,大多数系统托盘将图标的高度限制为非常小的尺寸,并且Gtk.StatusIcon会自动缩小PixBuf,以便宽度和高度都小于高度限制。这严重限制了使用Gtk.StatusIcon可以有效显示的文本量
有关提供API以实现更通用的系统托盘小程序并支持任意长度文本字符串的库(可在Gtk之外安装)的信息,请参阅。有关使用此库的示例代码,请参阅。谢谢您的建议。我要看一看开罗的