Ich muss wissen, wenn die Größe des Canvas geändert wird (z. B. wenn der Master-Frame maximiert wird), die neue Canvas-Fenstergröße. Leider, wenn ich self.canvas ['width'] versuche, scheint es mir immer, dass ich die Breite zurückbekomme, die es hatte, wenn ich es initialisierte und nicht die aktuelle Breite. Wie erhalte ich die aktuellen Abmessungen des Canvas-Fensters?tkinter Canvas-Fenstergröße
0
A
Antwort
4
Wenn Sie abrufen self.canvas['width']
, fragen Sie tkinter Sie geben die konfigurierte Breite des Widgets, nicht die tatsächlichen Breite. Für die tatsächliche Breite können Sie .winfo_width()
verwenden.
Wenn Sie wissen möchten, wann die Größe des Canvas geändert wird, können Sie dem Ereignis <Configure>
im Widget eine Bindung hinzufügen. Das Ereignisobjekt, das an die Bindung übergeben wird, hat das Attribut width
, das auch die tatsächliche Breite des Widgets aufweist.
Hier ist ein Beispiel:
import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root, width=200, height=200, background="bisque")
canvas.pack(side="bottom", fill="both", expand=True)
canvas.create_text(10, 30, anchor="sw", tags=["event"])
canvas.create_text(10, 30, anchor="nw", tags=["cget"])
def show_width(event):
canvas.itemconfigure("event", text="event.width: %s" % event.width)
canvas.itemconfigure("cget", text="winfo_width: %s" % event.widget.winfo_width())
canvas.bind("<Configure>", show_width)
root.mainloop()
Verwandte Themen
- 1. Unterschied zwischen tkinter und Tkinter
- 2. kann nicht importiert tkinter (oder Tkinter)
- 3. Tkinter: Wie tkinter Text Widget aktualisieren?
- 4. Tkinter Eingabesubstitutionen
- 5. tkinter Einstiegshöhe
- 6. Tkinter root.after_cancel
- 7. Tkinter Programmierung
- 8. Tkinter Eingabefelder
- 9. Mangled tkinter
- 10. Tkinter Variablen
- 11. Tkinter Wecker
- 12. Tkinter Vollbild
- 13. Eröffnungsdatei (Tkinter)
- 14. Tkinter create_image
- 15. Tkinter headshow
- 16. Unterschied zwischen Import tkinter als tk und von tkinter import
- 17. Python tkinter Etikettenausrichtung
- 18. Drucken python tkinter Ausgabe
- 19. Zeichenkreis in Tkinter (Python)
- 20. tkinter Text Widget typeError
- 21. Python tkInter Eintrag Spaß
- 22. Tkinter Grundlayout mit Text
- 23. Ändern Tkinter Frame Titel
- 24. Tkinter startet kein Fenster
- 25. Tkinter bind Funktion
- 26. Wie importiere ich Tkinter?
- 27. Python Tkinter Etikett aktualisieren
- 28. Tkinter und GPIO.add_event_detect - TypeError?
- 29. Python Tkinter Bildanzeige
- 30. Packet Generator in Tkinter