python / python/cpython

ttk.tkinter.Notebook does not refresh notebook page on Mac unless mouse moves out of tab area

Offen
#136,095 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

OS-mac stdlib topic-tkinter type-bug
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
35.9k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Bug report

Bug description:

Test Code:

from tkinter import *
from tkinter.ttk import Notebook

mw = Tk()
mw.title("Notebook Test")
mw.geometry(f"{800}x{800}")

main_page_frame = Frame(mw, borderwidth=1, relief='ridge')
main_page_frame.pack(side='top', expand=1, fill='both')

notebook = Notebook(main_page_frame)
notebook.pack(expand=1, fill='both')

for info in ("one", "two", "three"):
    frame = Frame(mw)
    Label(frame, text=info).pack()
    notebook.add(frame, text=info)

mw.mainloop()

Test Computer

MacOS Sequoia: Version 15.3.1

Problem

prepare

Click on the three tabs, one after another. The behaviour is what one would expect

execution

  • carefully click on a new tab... but don't move the mouse once you have clicked

problem

  • the notebook page does not refresh (i.e. you won't see the label within the notebook)
  • if you move the mouse carefully just within the tab name area, nothing happens
  • if you move the mouse outside of this area, the label will suddenly appear.

Note

Tried this on a windows machine, and the behaviour as it should be, so this problem seems to be a MAC problem (don't have a linux machine so can't try there).

According to the documentation, the MAC python 3.13 has its own version of Tcl/Tk, so maybe this is a Tcl/Tk problem, and not a python problem?

CPython versions tested on:

3.13

Operating systems tested on:

macOS

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, das mitgelieferte Notebook-Beispiel unter macOS Sequoia mit Python 3.13 auszuführen und das Verhalten beim Klicken auf Tabs mit Windows zu vergleichen. Lies die Implementierung von tkinter Notebook und das im Bericht erwähnte Verhalten von macOS Tcl/Tk. Erledigt ist es, wenn durch die Auswahl eines Tabs dessen Seite sofort angezeigt wird, ohne die Maus aus dem Tab-Bereich zu bewegen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
desktop
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
42/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.