This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Visual glitches when animating ScrolledText instances using place geometry manager
Type: behavior Stage: resolved
Components: macOS, Tkinter Versions: Python 3.8, Python 3.7
process
Status: closed Resolution: third party
Dependencies: Superseder:
Assigned To: Nosy List: Victor Domingos, gpolo, ned.deily, ronaldoussoren, serhiy.storchaka
Priority: normal Keywords:

Created on 2018-02-17 14:05 by Victor Domingos, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
issues.jpg Victor Domingos, 2018-02-17 14:05 Screenshot of visual issues with ScrolledText instances using place geometry manager
Messages (4)
msg312281 - (view) Author: Victor Domingos (Victor Domingos) * Date: 2018-02-17 14:05
In the current Python 3.7.0b1, on macOS 10.12.6 Sierra (also on 10.11 El Capitan), which seems to include a newer Tcl/tk version, there seems to be some visual glitches when using the place() geometry manager to animate a ttk.Frame containing ScrolledText widgets. These issues do not happen when running the same code on current Python 3.6.

Thanks in advance,

With best regards,
Victor Domingos



My current version:

Python 3.7.0b1 (v3.7.0b1:9561d7f501, Jan 30 2018, 19:10:11) 
[Clang 6.0 (clang-600.0.57)] on darwin

--------

Here is an excerpt of my code (animated placement of the container frame):


    def show_entryform(self, *event):
        if not self.is_entryform_visible:
            self.is_entryform_visible = True
            self.btn_add.configure(state="disabled")
            # Formulário de entrada de dados (fundo da janela)
            self.my_statusbar.lift()

            if SLOW_MACHINE:
                self.entryframe.place(
                    in_=self.my_statusbar, relx=1, y=0, anchor="se", relwidth=1, bordermode="outside")
            else:
                for y in range(-30, -12, 6):
                    self.entryframe.update()
                    y = y**2
                    self.entryframe.place(
                        in_=self.my_statusbar, relx=1, y=y, anchor="se", relwidth=1, bordermode="outside")
                for y in range(-12, -3, 3):
                    self.entryframe.update()
                    y = y**2
                    self.entryframe.place(
                        in_=self.my_statusbar, relx=1, y=y, anchor="se", relwidth=1, bordermode="outside")
                for y in range(-3, 0, 1):
                    self.entryframe.update()
                    y = y**2
                    self.entryframe.place(
                        in_=self.my_statusbar, relx=1, y=y, anchor="se", relwidth=1, bordermode="outside")

            self.entryframe.lift()


-----------

And the base class definition for the problematic widgets:


class LabelText(ttk.Frame):
    """
    Generate an empty tkinter.scrolledtext form field with a text label above it.
    """

    def __init__(self, parent, label, style=None, width=0, height=0):
        ttk.Frame.__init__(self, parent)
        if style:
            self.label = ttk.Label(self, text=label, style=style, anchor="w")
        else:
            self.label = ttk.Label(self, text=label, anchor="w")

        self.scrolledtext = ScrolledText(self, font=("Helvetica-Neue", 12),
                                         highlightcolor="LightSteelBlue2",
                                         wrap='word',
                                         width=width,
                                         height=height)

        self.label.pack(side="top", fill="x", expand=False)
        self.scrolledtext.pack(side="top", fill="both", expand=True)
msg312301 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2018-02-18 09:36
Tkinter is just a wrapper around Tcl/Tk. It is not responsible for visualization. Please report your issue on the Tk bug tracker https://core.tcl.tk/tk/reportlist.
msg313049 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2018-02-28 06:52
Victor, FYI, 3.7.0b2 has just been released and the macOS 10.9+ installer contains an updated version of Tcl/Tk (8.6.7 -> 8.6.8).  According to the Tk change log, there were a number of macOS related fixes that went in to 8.6.8. Perhaps some of the glitches you were seeing have been fixed?  If not, as Serhiy points out, it's best to report the issue to the Tk project especially if it can be easily reproduced without using Python with, like with the Tcl wish shell.  Good luck!
msg313054 - (view) Author: Victor Domingos (Victor Domingos) * Date: 2018-02-28 10:40
The new beta (Python 3.7.0b2 with Tcl/tk 8.6.8) seems to have that issue solved. Nice! :)
History
Date User Action Args
2022-04-11 14:58:57adminsetgithub: 77045
2018-02-28 10:40:07Victor Domingossetmessages: + msg313054
2018-02-28 06:52:18ned.deilysetmessages: + msg313049
2018-02-18 09:36:35serhiy.storchakasetstatus: open -> closed
resolution: third party
messages: + msg312301

stage: resolved
2018-02-17 14:05:42Victor Domingoscreate