Как центрировать всплывающее уведомление GNOME? - PullRequest
4 голосов
/ 22 апреля 2009

Чтобы отобразить всплывающее уведомление GNOME (200 400) на экране (с использованием 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()

Я гут нуб. Как сделать так, чтобы это уведомление отображалось по центру экрана или в нижней центральной части экрана?

Возможно, мой вопрос должен звучать так: «Какой фрагмент кода Python дает мне размеры экрана Linux?», И я подключу их в set_hint () в зависимости от ситуации.

Ответы [ 3 ]

4 голосов
/ 23 апреля 2009

Поскольку вы используете 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()
0 голосов
/ 22 апреля 2009

Немного взломать, но это работает:

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]
0 голосов
/ 22 апреля 2009

на окнах

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

Не могу найти версию для Linux, хотя.

...