Получить позицию элемента запуска в python

Я пишу приложение, в котором я хочу, чтобы маленькое окно открывалось рядом с его элементом запуска. Я могу открыть его в позиции мыши (которая будет рядом с пусковой установкой), но это не очень точно или удовлетворительно. Как я могу получить положение на экране иконки запуска с помощью Python, чтобы я мог установить свою позицию Gtk.Window? Спасибо!

0
задан 8 July 2012 в 05:38

1 ответ

Это то, что я смог понять, хотя это не так удовлетворительно, как просто получить координаты x, y.

Вы можете получить упорядоченный список элементов панели запуска, находящихся в данный момент на панели, затем найти индекс списка модулей запуска в списке и умножить на размер значка + некоторые отступы для верхней панели и расстояние между значками, чтобы получить приблизительную координату y ,

См. Код ниже. Я надеюсь, что это поможет любому, кто может искать способ сделать это.

    from gi.repository import Unity
    import gconf

    #Get Icon size
    LF_ICONSIZE=gconf.client_get_default().get_int('/apps/compiz-1/plugins/unityshell/screen0/options/icon_size')

    LF_ICONPADDING=10 # Guesstimate
    PANEL_HEIGHT=16  # Guesstimate, will depend on fontsize. Don't know where to get this
    #Use unity api to get a list of launcher panel items  
    lf=Unity.LauncherFavorites.get_default().enumerate_ids()

    #Find the position of my .desktop file 
    #(add 2 for the dash icon and because lists start at 0)
    pos=lf.index('nautilus.desktop') + 2

    #calculate approximate y coordinate
    y = pos * (LF_ICONSIZE + LF_ICONPADDING) + PANEL_HEIGHT
0
ответ дан 8 July 2012 в 05:38

Другие вопросы по тегам:

Похожие вопросы: