Updated 2016-05-10 15:16:11 by bll

With more and more pc makers using high resolution and retina displays, how does one ensure that Tcl/Tk programs stay reasonable on these new displays? There is a lot of code here in the wiki as well as my own where window sizes are set using wm minsize/maxsize and various geometry settings. Same goes for font sizes too. However, I found out that on these high resolution displays, these scripts result in incredibly small windows wherein it is almost impossible to read menus and labels and what not.

How do you deal with this?

bll 2015-12-31: I have put some effort into this question here: User Interface Design: Sizing of Elements. The page also covers localization concerns in addition to high resolution displays. Please feel free to expand upon the ideas presented there.

bll 2016-5-2: With VirtualBox, I set the guest window to scaled mode, and then: VBoxManage controlvm win7-64 setvideomodehint 3840 2160 32

bll 2016-5-2: Things that do not work with 4K display (assuming that tk scale is set correctly):

a) Checkbuttons do not scale.

Scaled checkbutton is a pure tcl implementation of checkbuttons (bll 2016-5-10).

ttk::checkbutton as toggle switch display now includes multiple sizes of images and tries to adjust for scale.

b) Radiobuttons do not scale.

c) Scale sliders, scrollbars, the down arrow on comboboxes do not scale very well.

d) Arrows on spinboxes are useless.

e) Native Menus are sized by the operating system.

f) If you have images for icons or buttons or whatever, you will need to include multiple sizes and select the appropriate one.

bll 2016-5-2: I have updated the toggle switch package with multiple sizes. I am going to try and create packages with semi-scalable checkboxes and radio buttons. (Wishing I was better at graphics). Not sure what to do about spinboxes, scrollbars, etc.

Tk needs SVG. RZ It is already there. Try tkpath.

bll It says "for the canvas". Need it for all the widgets. Will it work for widgets? It would be best to be able to define the widgets as SVG elements (not "SVG like").