ich bin grad dabei einem Toplevel eine andere Position zuzuweisen.
Mein Toplevel sieht so aus:
Code: Alles auswählen
self.operate_outside = tk.Toplevel(self, highlightbackground=self.border_color, highlightcolor=self.border_color, highlightthickness=2, relief=tk.GROOVE)
self.operate_outside.geometry("%dx%d+%d+%d" % (1400, 150, 210, 265))
Jetzt möchte ich per Button das Toplevel auf eine andere Position eines zweiten Bildschirms setzen.
Heißt: Wenn ich den Button drück, wechselt die gesamte Programm-GUI auf einen zweiten Bildschirm. (Läuft)
Das Toplevel bleibt aber auf dem alten Bildschirm.
Das Toplevel versuche ich jetzt mit:
Code: Alles auswählen
def set_monitor(self, _):
if len(win32api.EnumDisplayMonitors()) > 1:
#### Monitorwechsel funktioniert.
for key, monitor in self.monitor_dict.items():
if windll.user32.MonitorFromWindow(windll.user32.GetForegroundWindow(), 2) in monitor['Active']:
self.start = key
if self.start != self.start_marker.get():
self.start_marker.set(self.start)
if self.start >= self.len_monitors:
self.actual_number = 0
else:
self.actual_number = self.start + 1
else:
if self.actual_number == self.len_monitors:
self.actual_number = 0
else:
self.actual_number += 1
x_position, y_position, _, _ = self.monitor_dict[self.actual_number]['Work']
win32gui.MoveWindow(win32gui.GetForegroundWindow(),
x_position,
y_position,
win32api.GetSystemMetrics(0),
win32api.GetSystemMetrics(1),
True
)
###################################################
> Hier funktioniert es nicht:
x, y = x_position+self.operate_outside.winfo_rootx(), y_position+self.operate_outside.winfo_y()
print(x, y) # 2130 268
self.operate_outside.configure(x_position=x, y_position=y)
Code: Alles auswählen
2130 268
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Program Files\Python37\lib\tkinter\__init__.py", line 1705, in __call__
return self.func(*args)
File "C:\Users\colling\Desktop\DM-Import_TEST\Frontend.py", line 437, in set_monitor
self.operate_outside.configure(x_position=x, y_position=y)
File "C:\Program Files\Python37\lib\tkinter\__init__.py", line 1485, in configure
return self._configure('configure', cnf, kw)
File "C:\Program Files\Python37\lib\tkinter\__init__.py", line 1476, in _configure
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
_tkinter.TclError: unknown option "-x_position"