[issue31552] IDLE: Convert browswers to use ttk.Treeview

2022-03-18 Thread Terry J. Reedy


Terry J. Reedy  added the comment:

ttk.Treeview also has problems, at least on some systems and versions.

https://mail.python.org/pipermail/tkinter-discuss/2022-March/004226.html
HiDPI displays and tkinter [cont]
https://mail.python.org/pipermail/tkinter-discuss/attachments/20220316/843e7076/attachment-0001.png
Apparently on linux.

https://mail.python.org/pipermail/tkinter-discuss/2022-March/004228.html
https://www.tcl.tk/man/tcl/TkCmd/ttk_treeview.html

under "Styling Options'
there is parameter to set the -rowheight
that needs to be defined as

ttk::style configure Treeview \
 -rowheight [expr {[font metrics font -linespace] + 2}]

however I could not find how to call this command, and when
If I do the following

style = ttk.Style()
style.configure("Treeview", rowheight="30")

it works, but it is not dynamic with the font size/dpi

Response has suggestion.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue31552] IDLE: Convert browswers to use ttk.Treeview

2022-03-18 Thread Terry J. Reedy


Terry J. Reedy  added the comment:

3. continued. As noted in #22628, idlelib.tree has line spacing and other stuff 
hardcoded so it will not work properly on all monitors.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue31552] IDLE: Convert browswers to use ttk.Treeview

2021-06-03 Thread Terry J. Reedy


Terry J. Reedy  added the comment:

Concrete reason 3. Treewidget does not work on high-res monitors.  The #37041 
quick Treeview test worked for Andre Roberge

--
nosy: +aroberge
versions: +Python 3.11 -Python 3.7, Python 3.8

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue31552] IDLE: Convert browswers to use ttk.Treeview

2019-05-25 Thread Terry J. Reedy


Terry J. Reedy  added the comment:

I changed the type to behavior because the hard-coded pixel heights prevent the 
browsers form being usable on at least one HiDPI monitor.  I closed #37041 in 
favor of this on the presumption that ttk.Treeview will work on such monitors, 
at least after fix_scaling(root) is called.  I posted a quick test there.

--
type: enhancement -> behavior
versions: +Python 3.8 -Python 3.6

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue31552] IDLE: Convert browswers to use ttk.Treeview

2017-09-27 Thread Terry J. Reedy

Terry J. Reedy  added the comment:

The main issue for conversion is expanding nodes.  tree.py does not define a 
widget class.  Rather, is uses a used a canvas and places images and text 
thereupon.  The latter is done with instances of TreeNode.  Each instance 
thereof is initialized with an instance of a subclass of TreeItem.  TreeItems 
can tell their TreeNode whether they can generate children without actually 
doing so.

Treeview *is* a widget which manages internal column and line structures.  
Clicking a [+] or [-] icon generates a '<>' or '<>' 
event.  Double clicking a line generates both a select and flip event.  The 
catch is that there is no [+] unless the node already has at least one child.

One solution would be to initially generate the whole tree of Treeview items 
from the pyclbr tree.  Another is to give items with children a dummy child and 
replace it on demand.  The item could be given its line number (as a string) as 
its id.  A subclass of Treeview (or a Frame containing one) could have a dict 
mapping ids to child dicts).

Since the browser TreeItem subclasses are used by pathbrowser, I would 
initially move them to that module rather than delete them.  Or I would combine 
the two modules.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue31552] IDLE: Convert browswers to use ttk.Treeview

2017-09-27 Thread Terry J. Reedy

Terry J. Reedy  added the comment:

Two concrete reasons to make the conversion: two issues are stymied by current 
tree.TreeNode.

1. #25090 tree.TreeNode requires an icon for every line.  Hence functions and 
classes get python file and director icons and they are difficult to remove.  
By default, Treeview items do not get an image beside the text.

2. #20827 tree.TreeNode hardcodes single click behavior (in multiple places). 
TreeItems can only override or augment double clicks.  So it would be hard to 
keep hilites synchronized in browser and editor.  Treeview generates 
'<>' when a line is clicked on; setting the editor line can be 
done in a select handler.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue31552] IDLE: Convert browswers to use ttk.Treeview

2017-09-22 Thread Terry J. Reedy

Terry J. Reedy added the comment:

>From #31461: Browsers currently use idlelib.tree.TreeWidget.  Treeview is not 
>a drop-in replacement because TreeWidget has some of the higher-level 
>app-specific functions that users are expected to add to Treeview.  But could 
>Treeview replace the low-level parts of TreeWidget that actually display stuff 
>on the screen?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue31552] IDLE: Convert browswers to use ttk.Treeview

2017-09-22 Thread Terry J. Reedy

New submission from Terry J. Reedy:

ttk.Treeview should look as good as idlelib.tree, but will check.  It is more 
flexible.  Note that Treeview is low-level, need to add higher level functions 
or classes.  See if can more or less duplicate API of tree Items.

--
assignee: terry.reedy
components: IDLE
messages: 302747
nosy: terry.reedy
priority: normal
severity: normal
stage: test needed
status: open
title: IDLE: Convert browswers to use ttk.Treeview
type: enhancement
versions: Python 3.6, Python 3.7

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com