Ich habe einmal eine Frage.
Bin gerade am Programmieren eines aufwendigeren Programm und bin auf ein Problem mit der Messagebox gestoßen.
Wenn man mehrere Fenster öffnet und dann eine Messagebox aufmacht ist sie immer erst zu finden wenn ich alle bis auf das letzte Fenster geschlossen habe.
Darum Frage ich ob es einen Befehl gibt mit dem man die Messagebox immer in den Vordergrund geben kann ?
Messagebox
@STJ: Die Messagebox sollte eigentlich vor dem Fenster erscheinen das als `parent` angegeben wurde. Ansonsten vor dem Hauptfenster.
@STJ: Wie gesagt, man kann einer Messagebox das Fenster vor dem sie angezeigt werden soll als `parent`-Argument übergeben.
@STJ: bei mir wird die Messagebox über alle Fenster gelegt. Aber vielleicht ist das ja unter Windows anders:
Code: Alles auswählen
import tkinter
from tkinter import messagebox
root = tkinter.Tk()
many_windows = [tkinter.Toplevel(root) for _ in range(10)]
messagebox.showinfo("ich bin ganz oben.")
@STJ: In dem Du ein Schlüsselwortargument (`parent`) beim Erstellen angibst, und dem als Wert das Elternfenster übergibst.
@STJ: Einfach beim Aufruf übergeben. Vielleicht zur Auffrischung noch mal den Abschnitt zu Schlüsselwort-Argumenten im Python-Tutorial lesen: https://docs.python.org/2/tutorial/cont ... -arguments
-
- User
- Beiträge: 90
- Registriert: Dienstag 22. Mai 2018, 07:15
Hallo
Um nicht ein neues Thema auf zu machen, nutze ich gleich dieses.
Ich habe das Problem das wenn die Messagbox im Hintergrund öffnet, wenn ich das Programm im Rahmenlosen Vollbild laufen lasse.
Wenn ich das Programm im Fenstermodus laufen lasse funktioniert es das es im Vordergrund erscheint
Jemand einen Tip?
Um nicht ein neues Thema auf zu machen, nutze ich gleich dieses.
Ich habe das Problem das wenn die Messagbox im Hintergrund öffnet, wenn ich das Programm im Rahmenlosen Vollbild laufen lasse.
Wenn ich das Programm im Fenstermodus laufen lasse funktioniert es das es im Vordergrund erscheint
Jemand einen Tip?
Hi Streifenhase1
Wie funktioniert das?: (Nur unter Ubuntu 18.04 getestet)Gruss wuf
Wie funktioniert das?: (Nur unter Ubuntu 18.04 getestet)
Code: Alles auswählen
from functools import partial
import tkinter as tk
from tkinter import messagebox
APP_TITLE = "Messagebox on fullscreen"
APP_XPOS = 100
APP_YPOS = 100
APP_WIDTH = 350
APP_HEIGHT = 200
class Application(tk.Frame):
def __init__(self, master):
self.master = master
tk.Frame.__init__(self, master)
tk.Button(self, text="Beenden", command=self.master.destroy).pack(
side='left')
tk.Button(self, text="Show Messagebox", command=self.open_messagebox
).pack(side='left')
def open_messagebox(self):
messagebox.askyesno("Titel", "Möchtest du das Fenster öffnen ?")
def main():
app_win = tk.Tk()
app_win.title(APP_TITLE)
#app_win.geometry("+{}+{}".format(APP_XPOS, APP_YPOS))
app_win.geometry("{}x{}".format(APP_WIDTH, APP_HEIGHT))
app_win.attributes('-zoomed', True)
app = Application(app_win)
app.pack(expand=True)
app_win.mainloop()
if __name__ == '__main__':
main()
Take it easy Mates!