Как узнать размер и расположение панели задач с помощью PyGTK? - PullRequest
1 голос
/ 24 апреля 2011

Есть ли способ получить положение и размер панели задач в Windows с PyGTK?

Если нет, есть ли хотя бы способ определения свободной клиентской области на конкретном мониторе? (Другими словами, область панели задач не занимает?)

Ответы [ 2 ]

0 голосов
/ 15 ноября 2016

Немного аккуратнее (но только для окон), так как это создает динамическую пару переменных, которые вы затем можете использовать для настройки смещения оставшегося кода;

import win32gui

#discover where top left corner of active screen is
#return is a dictionary list of keys and values
monitors = win32api.EnumDisplayMonitors()
display1 = win32api.GetMonitorInfo(monitors[0][0])

#from the Work key, select the first and second values
x_adj=(display1['Work'][0])
y_adj=(display1['Work'][1])

Затем, в оставшейся части кода используйтеэти корректировки, чтобы уточнить ваши навигационные клики.В моем случае я перемещаюсь по окну, используя pyautogui

import pyautogui

#just move the mouse to a position
pyautogui.moveTo(x=103+x_adj, y=235+y_adj)

#move and click the mouse
pyautogui.click(x=103+x_adj, y=235+y_adj)

В вашем случае вы захотите создать верхний левый угол нового окна в (или относительно) координатах (x_adj,y_adj)

0 голосов
/ 24 апреля 2011

Вы можете развернуть окно и проверить его геометрию после того, как оно было развернуто.Примерно так (работает как в Windows, так и в Linux):

import gtk

size = (10, 10)
def expose(widget, *args):
    global size
    size = widget.get_size()
    if size != (10, 10):
        gtk.main_quit()

win = gtk.Window()
win.resize(*size)
win.connect('expose-event', expose)
win.show()
win.maximize()
gtk.main()
print size

Это несколько странно, но я не уверен, существует ли переносимый способ (без использования Win32 API, если вы в Windows) длясделай это.

...