如何将GNOME弹出通知居中?

4 投票
3 回答
2890 浏览
提问于 2025-04-15 11:12

要在屏幕的(200,400)位置显示一个GNOME弹出通知(使用Python):

import pynotify

n = pynotify.Notification("This is my title", "This is my description")
n.set_hint('x', 200)
n.set_hint('y', 400)
n.show()

我对gtk还不太熟悉。请问我怎么才能让这个通知显示在屏幕的正中间,或者在屏幕的底部中间呢?

也许我应该问的是“用什么Python代码可以获取Linux屏幕的尺寸?”然后我可以把这些尺寸放进set_hint()里,调整位置。

3 个回答

-4

在Windows上,

      from win32api import GetSystemMetrics
      width = GetSystemMetrics (0)
      height = GetSystemMetrics (1)
      print "Screen resolution = %dx%d" % (width, height)

不过我好像找不到它的Linux版本。

0

这有点像小技巧,但这样做是有效的:

from Tkinter import *
r = Tk()
r.withdraw()
width, height = r.winfo_screenwidth(), r.winfo_screenheight()

另外一个选择是:

from commands import getstatusoutput
status, output = getstatusoutput("xwininfo -root")
width = re.compile(r"Width: (\d+)").findall(output)[0]
height = re.compile(r"Height: (\d+)").findall(output)[0]
4

因为你在使用GNOME,这里有一种通过GTK获取屏幕分辨率的方法。

import gtk.gdk
import pynotify

n = pynotify.Notification("This is my title", "This is my description")
n.set_hint('x', gtk.gdk.screen_width()/2.)
n.set_hint('y', gtk.gdk.screen_height()/2.)
n.show()

撰写回答