2013-07-19 3 views
5

У меня есть два монитора, настроенных (экран для ноутбука и внешний монитор). Мой экран ноутбука - мой основной дисплей, а внешний монитор - вторичный. Оба имеют разные размеры экрана.Python tkinter экран ширина и высота вторичный дисплей

В моем скрипте tkinter python я использовал winfo_screenwidth() и winfo_screenheight(), чтобы определить ширину и высоту экрана, чтобы я мог установить корневое окно в полноэкранный режим.

Обычно, когда я запускаю свой скрипт, корневое окно будет размером с экран моего ноутбука. Когда я перемещаю окно на свой расширенный монитор, я хочу, чтобы он автоматически настраивал ширину и высоту в соответствии с шириной и высотой внешнего дисплея.

Возможно ли это? Есть ли способ проверить, находится ли корневое окно на первичном или вторичном дисплее?

winfo_screenwidth() Определяет ширину и высоту вторичного дисплея?

EDIT: Я использую Windows XP Pro 32 бит & Python 2.7.

+0

Просто мое мнение, но я думаю, что изменение размера окна должно быть предоставлено пользователю для принятия решения. Создание окна в полноэкранном режиме - это всего лишь один щелчок мышью, так зачем его заставлять? –

+1

@tobias_k Извините, я забыл упомянуть, что я использую свое собственное окно и отключил обычный стиль окна с помощью 'root.overrideredirect (1)', поэтому на данный момент у меня нет кнопки максимизации по умолчанию. –

+0

Многие ответы здесь: http://stackoverflow.com/questions/3129322/how-do-i-get-monitor-resolution-in-python – User

ответ

1

Как я это сделал:

t = Tk() # new window 
t.update() 
t.attributes("-alpha", 00) 
t.state('zoomed') # maximize the window 
height= t.winfo_height() # ... 
width= t.winfo_width() 

Но, к сожалению, я не знаю о местонахождении другого экрана. Но я думаю, что вы можете сделать это

  1. создать новое окно
  2. использовать winfo_screenheight() и winfo_screenwidth(), чтобы узнать о первоначальном экране
  3. использование геометрии(), чтобы переместить окно вокруг
  4. увеличить окно (оно должно всегда максимально на экране, где она есть)
  5. геометрию получим()
  6. если геометрия в точке (0, 0) это главный экран, нажмите кнопку 3.
  7. вы обнаружили другой экран
+0

Вы имеете в виду 't.state ('zoomed')' будет максимизировать корневое окно на экране появляется время выполнения команды? Например, если корневое окно находится на главном дисплее, оно будет максимизироваться в соответствии с шириной и высотой основного экрана и тем же будет применяться для вторичного отображения? –

+0

Точно. Я знаю, что это должно произойти под Windows. Я не могу говорить за других менеджеров окон. Возможно, вы можете попробовать и сказать, работает ли это. – User

+0

это работает .. спасибо! –

Смежные вопросы