homepage

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: IDLE: path browser unusable on some displays
Type: behavior Stage: resolved
Components: IDLE Versions: Python 3.8, Python 3.7
process
Status: closed Resolution: duplicate
Dependencies: Superseder: IDLE: Convert browsers to use ttk.Treeview
View: 31552
Assigned To: terry.reedy Nosy List: aroberge, terry.reedy
Priority: normal Keywords:

Created on 2019年05月25日 10:26 by aroberge, last changed 2022年04月11日 14:59 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
path_browser_problem.png aroberge, 2019年05月25日 10:26 screen capture showing the problem
Messages (3)
msg343466 - (view) Author: Andre Roberge (aroberge) * Date: 2019年05月25日 10:26
On my computer (Windows 10, screen resolution 3000 x 2000, scaling of text and other elements set at 200% as the recommended value), the path browser is essentially unusable as the items overlap each other. See the attached image. 
I found that changing the following:
 def draw(self, x, y):
 # XXX This hard-codes too many geometry constants!
 dy = 40 # changed from 20
in tree.py solved the problem.
msg343532 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2019年05月26日 04:37
Another reason to replace IDLE's custom tree widget with hard-coded constants with ttk.Treeview.
I am closing this because I believe that #31552 will solve this problem. For an initial check, run the following test code, extracted from
https://tkdocs.com/tutorial/tree.html
Click the [+] buttons. I am curious whether commenting out the fix_scaling call makes any difference.
---------
import tkinter as tk
from tkinter import ttk
from idlelib.run import fix_scaling
root = tk.Tk()
tree = ttk.Treeview(root)
tree.pack()
fix_scaling(root)
tree.insert('', 'end', 'widgets', text='Widget Tour')
tree.insert('', 0, 'gallery', text='Applications')
id = tree.insert('', 'end', text='Tutorial')
tree.insert('widgets', 'end', text='Canvas')
tree.insert(id, 'end', text='Tree')
root.mainloop()
msg343543 - (view) Author: Andre Roberge (aroberge) * Date: 2019年05月26日 10:22
I ran the example you gave and it worked perfectly.
History
Date User Action Args
2022年04月11日 14:59:15adminsetgithub: 81222
2021年06月03日 16:23:21arobergesetstatus: open -> closed
2019年05月26日 10:22:40arobergesetmessages: + msg343543
2019年05月26日 04:37:25terry.reedysetassignee: terry.reedy
superseder: IDLE: Convert browsers to use ttk.Treeview
components: + IDLE
versions: + Python 3.7, Python 3.8
messages: + msg343532
type: behavior
resolution: duplicate
stage: resolved
2019年05月25日 10:26:20arobergecreate

AltStyle によって変換されたページ (->オリジナル) /