tkinter resizable text with grid
auriocus at gmx.de
Fri Dec 7 02:11:07 EST 2018
Am 07.12.18 um 03:00 schrieb Paulo da Silva:
> Às 21:15 de 06/12/18, Rick Johnson escreveu:
>> I kinda have a love/hate relationship with Tkinter and IDLE.
>> On one hand i find them to be practical and simple and
>> on the other, i find them to be poorly designed and
>> unintuitive. And it's a real shame, because, both of these
>> libraries have tons of potential, *IF*, they were designed
>> probably and the shortcomings of TclTk were abstracted away
>> behind a more Pythonic interface.
I'm using Tk from both Tcl and Python, and to me it seems like exactly
the other way around. Tkinter feels clumsy compared to the "original"
Tcl/Tk, because of some overzealous OOP-wrapping. "grid" is a good
example; in Tcl, it is not a member of the widgets but instead a free
function. It can take more than one slave, so, for instance
grid .x .y .z
grid .a x .b
creates a 3x2 grid of widgets with the lower middle cell empty. No
fiddling with row and column counting. For some strange reason the
Tkinter designers decided that grid should be a method of the slave,
which makes it feel much more clumsy.
> I fully agree. Nevertheless, what I miss more is the lack of more
> complex mega widgets - scrollable list of widgets with insert, append
> and remove methods and perhaps a spreadsheet like widget are two big
> ones. There are others smaller, like a single scrollable text with two
> scroll bars that hide when not needed, tab multi-choice container, etc ...
These widgets do exist for Tcl/Tk. You can use a tablelist for both a
list of widgets or a multi-column listbox
For the spreadsheet, TkTable is another solution which is more close to
"Tab multi-choice container" sounds to me like a ttk::notebook widget
Another handy extension is TkDnD, which brings support for native
Drag'n'drop, i.e. you can drop files from a file manager into your
- not to be confused with a cheap substitute
https://kite.com/python/docs/Tkdnd which only supports drag/drop within
one application instance.
The "problem" with these pacakges, they are written in Tcl and/or C, is
that they are not distributed along the Tk core and consequently there
are no well-maintained Python wrappers availabe. In the Tcl community,
these packages are considered "essential" for more complex GUI
programming. So instead of complaining about lacking support in Tk, the
Python community should do their homework and provide wrappers to the
most common Tk extensions.
More information about the Python-list