Start/Splash Screen
Verfasst: Mittwoch 20. September 2017, 11:41
Hallo Zusammen,
ich möchte bei meiner Anwendung gerne eine Art "Splash screen" bzw. ein Startfenster anzeigen lassen, welches dem User zu Anwendungsbeginn
angezeigt wird ohne das Hauptfenster gleich zur Verfügung zu stellen.
Im Startfenster soll der User die Möglichkeit haben ein Tutorial zu wählen, die Anwendung zu starten oder alles komplett wieder zu verlassen.
Das Anzeigen des Startfensters, wobei das Hauptfenster erstmal verborgen bleibt, funktioniert soweit.
Beim schließen des Startfensters (jedoch nur über den window manager rahmen möglich --> schließen-button) wird das Hauptfenster anschließend angezeigt. (dies soll aber ebenfalls geschlossen werden) Der Quit-Button des Startfensters funktioniert zur momentan noch gar nicht...warum? Wenn dieser gedrückt wird, dann soll ebenfalls die gesamte Applikation geschlossen werden.
Beim Start-Button soll das Startfenster geschlossen werden und dann nur das Hauptfenster angezeigt werden.
Könnt ihr mir hier weiterhelefen?
ich möchte bei meiner Anwendung gerne eine Art "Splash screen" bzw. ein Startfenster anzeigen lassen, welches dem User zu Anwendungsbeginn
angezeigt wird ohne das Hauptfenster gleich zur Verfügung zu stellen.
Im Startfenster soll der User die Möglichkeit haben ein Tutorial zu wählen, die Anwendung zu starten oder alles komplett wieder zu verlassen.
Das Anzeigen des Startfensters, wobei das Hauptfenster erstmal verborgen bleibt, funktioniert soweit.
Beim schließen des Startfensters (jedoch nur über den window manager rahmen möglich --> schließen-button) wird das Hauptfenster anschließend angezeigt. (dies soll aber ebenfalls geschlossen werden) Der Quit-Button des Startfensters funktioniert zur momentan noch gar nicht...warum? Wenn dieser gedrückt wird, dann soll ebenfalls die gesamte Applikation geschlossen werden.
Beim Start-Button soll das Startfenster geschlossen werden und dann nur das Hauptfenster angezeigt werden.
Könnt ihr mir hier weiterhelefen?
Code: Alles auswählen
import tkinter as tk
from tkinter import ttk
class StartScreen(tk.Toplevel):
def __init__(self, parent):
tk.Toplevel.__init__(self, parent)
# self.transient(parent)
self.parent = parent
### create widgets ###
self.label_image = ttk.Label(self, text='start screen...')
self.button_tutorial = ttk.Button(self, text="Tutorial",
command=lambda: print('show tutorial video/pdf'))
self.button_start = ttk.Button(self, text="Start Application",
command=lambda: print('close start screen and show main window'))
self.button_quit = ttk.Button(self, text="Quit",
command=self.quit)
### create layout ###
self.label_image.pack()
self.button_tutorial.pack(fill='x')
self.button_start.pack(fill='x')
self.button_quit.pack(fill='x')
# self.update()
# self.update_idletasks()
def show_tutorial(self):
"""..."""
pass
def start(self):
"""..."""
pass
def quit(self):
"""..."""
self.destroy()
class MainWindow(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.title('Application')
self.resizable(False, False)
self.wm_minsize(width=500, height=500)
### init start screen ###
self.start_screen = StartScreen(self)
self.withdraw()
self.wait_window(self.start_screen)
self.deiconify()
if __name__ == '__main__':
MainWindow().mainloop()