2010-10-22 13 views
6

Python 2.7 pod Windows: Jak możemy kontrolować pozycję wspólnych okien dialogowych Tkintera?Python 2.7/Windows: Jak kontrolować położenie wspólnych okien dialogowych Tkintera?

Oto co odkryliśmy:

  • Pewne wspólne dialogi zawsze otwierają się w stosunku do swojego okna nadrzędnego
  • Pewne wspólne dialogi zawsze otwierają się na środku pulpitu użytkownika
  • Wszystkie wspólne dialogi wydają się ignorować rodzic = opcjonalny parametr

pytania:

  • W jaki sposób możemy wymusić otwarcie okna dialogowego względem jego okna nadrzędnego?
  • W jaki sposób możemy wymusić otwarcie okna dialogowego na pulpicie użytkownika?

Tło:

import tkColorChooser as colorchooser 
import tkFileDialog as filedialog 
import tkMessageBox as messagebox 

; # always open up relative to parent windows 
fileOpen = filedialog.askopenfilename() 
fileOpens = filedialog.askopenfilenames() 
fileSaveAs = filedialog.asksaveasfilename() 
color  = colorchooser.askcolor() 

; # always open up centered on desktop 
folderOpen = filedialog.askdirectory() 
messagebox.askquestion() 

Dziękuję Malcolm

Odpowiedz

1

Dla messagebox systemu Windows nie można. Pojawia się na środku ekranu i to jest to. Jednak okno dialogowe wyboru pliku i selektora kolorów to okna dialogowe systemu, które otrzymały opakowanie TK, dzięki czemu użytkownicy widzą okna dialogowe giełdowe na tej platformie. Jeśli ustawisz opcję -parent, to zostanie ona przekazana do zawiniętych okien i zostanie wyśrodkowana na wyznaczonym poziomie tween.

W Tk:

toplevel .t 
tk_chooseColor -parent .t

Jak włączyć w Tkinter że wyjadę do kogoś z pewnym doświadczeniem Pythona.

Jeśli chodzi o centrowanie tych elementów, element hwndOwner w strukturze CHOOSECOLOR jest zawsze ustawiony na HWND dla jednego z twoich poziomów Tk. Aby pozwolić rodzicowi na pulpit, musisz przekazać NULL tam, a Tk ci nie pozwala. Możesz pobrać wersję unixową (lib/clrpick.tcl) i pokazać, że zamiast tego będzie wyglądała dziwnie na pulpicie systemu Windows.

Powiązane problemy