python:snippets:bildschirm
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| python:snippets:bildschirm [2025/05/14 19:23] – [auf voriges Fenster zurückspringen] franz | python:snippets:bildschirm [2025/05/15 15:51] (aktuell) – [Theemed Widgets] franz | ||
|---|---|---|---|
| Zeile 36: | Zeile 36: | ||
| </ | </ | ||
| + | ==== Create Tooltip ==== | ||
| + | Möchtre ich einen Tooltip auf ein Widget, Feld oder Button plazieren: | ||
| + | < | ||
| + | def create_tooltip(widget, | ||
| + | |||
| + | """ | ||
| + | |||
| + | Erstellt einen schwebenden Tooltip für ein Widget, der bei Mouseover angezeigt wird. | ||
| + | Args: | ||
| + | widget (tk.Widget): | ||
| + | text (str): Der anzuzeigende Text im Tooltip. | ||
| + | Returns: | ||
| + | None") | ||
| + | """ | ||
| + | |||
| + | tooltip = tk.Toplevel(widget) | ||
| + | tooltip.withdraw() | ||
| + | tooltip.overrideredirect(True) | ||
| + | tooltip_label = tk.Label( | ||
| + | tooltip, | ||
| + | text=text, | ||
| + | background=" | ||
| + | relief=" | ||
| + | borderwidth=1, | ||
| + | font=(" | ||
| + | ) | ||
| + | tooltip_label.pack() | ||
| + | def show_tooltip(event): | ||
| + | x = widget.winfo_rootx() + event.x + 20 | ||
| + | y = widget.winfo_rooty() + event.y | ||
| + | tooltip.geometry(f" | ||
| + | tooltip.deiconify() | ||
| + | def hide_tooltip(event): | ||
| + | tooltip.withdraw() | ||
| + | widget.bind("< | ||
| + | widget.bind("< | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Fenster existiert? ==== | ||
| + | |||
| + | < | ||
| + | def ensure_window_exists(db_name, | ||
| + | """ | ||
| + | Überprüft, | ||
| + | Args: | ||
| + | db_name (str): Name der Datenbank bzw. der zugehörigen Ansicht. | ||
| + | view_windows (dict): Wörterbuch, | ||
| + | Returns: | ||
| + | bool: True, falls ein entsprechendes Fenster existiert und sichtbar ist, sonst False. | ||
| + | |||
| + | """ | ||
| + | |||
| + | if db_name in view_windows and view_windows[db_name].winfo_exists(): | ||
| + | view_windows[db_name].lift() | ||
| + | view_windows[db_name].focus_force() | ||
| + | return True | ||
| + | return False | ||
| + | |||
| + | </ | ||
| ==== Fenster zentrieren ==== | ==== Fenster zentrieren ==== | ||
| Zeile 72: | Zeile 133: | ||
| **Rückgabe: | **Rückgabe: | ||
| None | None | ||
| + | |||
| ==== Theemed Widgets ==== | ==== Theemed Widgets ==== | ||
| Zeile 82: | Zeile 144: | ||
| < | < | ||
| + | from tkinter import ttk | ||
| style = ttk.Style() | style = ttk.Style() | ||
| # Basis-Theme auswählen (z. B. ' | # Basis-Theme auswählen (z. B. ' | ||
python/snippets/bildschirm.1747243382.txt.gz · Zuletzt geändert: von franz