2013-07-19 12 views
5

Mam dwa monitory skonfigurowane (ekran laptopa i monitor zewnętrzny). Mój ekran laptopa jest moim głównym wyświetlaczem, a zewnętrzny monitor jest drugorzędny. Oba mają różne rozmiary ekranu.Python tkinter szerokość i wysokość ekranu dodatkowego wyświetlacza

W moim skrypcie ze skryptem python używam winfo_screenwidth() i winfo_screenheight() do wykrywania szerokości i wysokości ekranu, dzięki czemu mogę ustawić okno główne, aby stać się pełnym ekranem.

Normalnie po uruchomieniu skryptu okno główne będzie mieć rozmiar ekranu mojego laptopa. Kiedy przenosimy okno do mojego rozszerzonego monitora, chcę, aby automatycznie dostosowywał szerokość i wysokość, aby dopasować szerokość i wysokość zewnętrznego wyświetlacza.

Czy to możliwe? Czy istnieje sposób sprawdzenia, czy okno główne znajduje się na ekranie podstawowym czy dodatkowym?

Czy winfo_screenwidth() wykrywa szerokość i wysokość dodatkowego wyświetlacza?

EDYCJA: używam systemu Windows XP Pro 32 bit & Python 2.7.

+0

Po prostu moja opinia, ale myślę, że zmiana rozmiaru okna powinna być pozostawiona użytkownikowi do podjęcia decyzji. Tworzenie pełnego okna na ekranie to tylko jedno kliknięcie myszką, więc po co go forsować? –

+1

@tobias_k Przepraszamy, zapomniałem wspomnieć, że używam swojego niestandardowego okna i wyłączyłem normalny styl okna, używając 'root.overridered (1)', więc nie mam w tej chwili domyślnego przycisku maksymalizacji. –

+0

Wiele odpowiedzi tutaj: http://stackoverflow.com/questions/3129322/how-do-i-get-monitor-resolution-in-python – User

Odpowiedz

1

jak to zrobiłem:

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

Ale niestety nie wiem o lokalizacji innego ekranu. Ale myślę, że można to zrobić

  1. utworzyć nowe okno
  2. użytkowania winfo_screenheight() i winfo_screenwidth(), aby uzyskać informacje na temat pierwotnego ekranu
  3. użycie geometrii(), aby przenieść okno wokół
  4. zmaksymalizować okno (należy zawsze maksymalizacji na ekran, gdzie to jest)
  5. geometrię get()
  6. czy geometria jest w punkcie (0, 0) jest to główny ekran, przejdź 3.
  7. Znalazłeś kolejny ekran
+0

masz na myśli 't.state ('zoomed')' zmaksymalizuje okno główne na ekranie pojawia się czas wykonania polecenia? Na przykład, jeśli okno główne znajduje się na głównym ekranie, zostanie zmaksymalizowane zgodnie z główną szerokością i wysokością wyświetlania, a to samo dotyczy ekranu dodatkowego? –

+0

Dokładnie. Wiem, że tak powinno się stać w Windows. Nie mogę mówić za innych menedżerów okien. Może możesz to wypróbować i powiedzieć, czy to działa. – User

+0

działa .. dzięki! –