Zmiana położenia okna dialogowego

0

Witam, jak zmienić położenie okna

f = asksaveasfile(initialfile='CSV Files',defaultextension=".txt", filetypes=[("All Files", "*.*"), ("Text Documents", "*.txt")])

Mogę je oczywiście przesuwać ale potrzebuję to "pierwsze otwarcie" mieć w innym miejscu niż środek apki. Dziękuję za pomoc bo net nic na ten temat nie mówi, a przynajmniej nie mogę znaleźć..

1

A nie jest to kwestia położenia buttona? Button ma metodę, place.

0
lion137 napisał(a):

A nie jest to kwestia położenia buttona? Button ma metodę, place.

Ja to wywołuję z górnego menu File -> Save as aplikacji.

0

OK, ale jakiś kod tym steruje?

0
lion137 napisał(a):

OK, ale jakiś kod tym steruje?

  menu = tk.Menu(self.root)
  file_menu = tk.Menu(menu)
  self.root.config(menu=file_menu)
  self.file_menu = menu

  filemenu = tk.Menu(file_menu, tearoff=0)

  file_menu.add_cascade(label="File", menu=filemenu)

  # File
  filemenu.add_command(label="Save as...", command=self.get_save_as)

  ...
def get_save_as(self):

  f = asksaveasfile(initialfile='CSV Files',
                    defaultextension=".txt", filetypes=[("All Files", "*.*"), ("Text Documents", "*.txt")], parent=self.root)
  f.write(self.data)
   
0

I nie ma nic w dokumentacji, tk.Menu, albo, tk.Menu.add_command o położeniu save buttona?

0
lion137 napisał(a):

I nie ma nic w dokumentacji, tk.Menu, albo, tk.Menu.add_command o położeniu save buttona?

Hmm.. w sumie to nie zajrzałem, dobry pomysł aby to przejrzeć :D

1

Tak to sobie wymyśliłem i niby działa.
Otwierasz Toplevel() z geometry(0x0+900+200) czyli go nie ma ale ma pozycję. Dalej filedialog z (parent='ten toplevel') i jest na środku okna które jest na pozycji np.: 900+200.
U mnie niby działa, ale wymaga potwierdzenia. Na mojej Fedorce pod KDE nie ma nic na pasku jako nowe, dodatkowe okno więc wygląda to dobrze. Trzeba jedynie chyba przy zamknięciu filedialog posprzatać destroy? ten Toplevel?

Pozdrawiam
Radek Głębicki

PS. aa zapomniałem. Ten Toplevel z parametrem overrideredirect(True) czyli bez obramowania.

0
Radosław Głębicki napisał(a):

Tak to sobie wymyśliłem i niby działa.
Otwierasz Toplevel() z geometry(0x0+900+200) czyli go nie ma ale ma pozycję. Dalej filedialog z (parent='ten toplevel') i jest na środku okna które jest na pozycji np.: 900+200.
U mnie niby działa, ale wymaga potwierdzenia. Na mojej Fedorce pod KDE nie ma nic na pasku jako nowe, dodatkowe okno więc wygląda to dobrze. Trzeba jedynie chyba przy zamknięciu filedialog posprzatać destroy? ten Toplevel?

Pozdrawiam
Radek Głębicki

PS. aa zapomniałem. Ten Toplevel z parametrem overrideredirect(True) czyli bez obramowania.

Hej, dziękuję za wskazówkę, na razie pracuję nad inną częścią kodu, wrócę do końca tyg do tematu to dam Ci znać :D

0
Mr Coin napisał(a):
Radosław Głębicki napisał(a):

Tak to sobie wymyśliłem i niby działa.
Otwierasz Toplevel() z geometry(0x0+900+200) czyli go nie ma ale ma pozycję. Dalej filedialog z (parent='ten toplevel') i jest na środku okna które jest na pozycji np.: 900+200.
U mnie niby działa, ale wymaga potwierdzenia. Na mojej Fedorce pod KDE nie ma nic na pasku jako nowe, dodatkowe okno więc wygląda to dobrze. Trzeba jedynie chyba przy zamknięciu filedialog posprzatać destroy? ten Toplevel?

Pozdrawiam
Radek Głębicki

PS. aa zapomniałem. Ten Toplevel z parametrem overrideredirect(True) czyli bez obramowania.

Hej, dziękuję za wskazówkę, na razie pracuję nad inną częścią kodu, wrócę do końca tyg do tematu to dam Ci znać :D

Dzięki za pomoc, działa :D

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.