Opened 3 years ago

Last modified 3 years ago

#8260 feedback defect

Font sizes in daily build

Reported by: Tristan Croll Owned by: Greg Couch
Priority: normal Milestone:
Component: Window Toolkit Version:
Keywords: Cc: chimera-programmers
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Windows-10-10.0.22621
ChimeraX Version: 1.6.dev202212302205 (2022-12-30 22:05:38 UTC)
Description
Not sure if it's Windows-specific, but in the daily builds the font sizes in some places (top menu, Models panel, some of ISOLDE's widgets, ...) are significantly larger than they used to be, messing up layouts (see attached snippet of screenshot comparing the Models panel to the log). Was this deliberate, or has some default changed in Qt? The fact that ISOLDE's widgets are affected suggests the latter.

OpenGL version: 3.3.0 NVIDIA 517.13
OpenGL renderer: NVIDIA GeForce RTX 3070 Laptop GPU/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation

Python: 3.9.11
Locale: en_GB.cp1252
Qt version: PyQt6 6.4.0, Qt 6.4.0
Qt runtime version: 6.4.1
Qt platform: windows

Manufacturer: HP
Model: HP ZBook Studio 15.6 inch G8 Mobile Workstation PC
OS: Microsoft Windows 11 Pro (Build 22621)
Memory: 34,007,068,672
MaxProcessMemory: 137,438,953,344
CPU: 16 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz
OSLanguage: en-GB

Installed Packages:
    -himerax-isolde: 1.6.dev0
    alabaster: 0.7.12
    appdirs: 1.4.4
    asttokens: 2.2.1
    Babel: 2.11.0
    backcall: 0.2.0
    blockdiag: 3.0.0
    build: 0.8.0
    certifi: 2022.12.7
    cftime: 1.6.2
    charset-normalizer: 2.1.1
    ChimeraX-AddCharge: 1.5.8
    ChimeraX-AddH: 2.2.3
    ChimeraX-AlignmentAlgorithms: 2.0
    ChimeraX-AlignmentHdrs: 3.3.1
    ChimeraX-AlignmentMatrices: 2.1
    ChimeraX-Alignments: 2.8
    ChimeraX-AlphaFold: 1.0
    ChimeraX-AltlocExplorer: 1.0.3
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Arrays: 1.0
    ChimeraX-Atomic: 1.43.4
    ChimeraX-AtomicLibrary: 10.0
    ChimeraX-AtomSearch: 2.0.1
    ChimeraX-AxesPlanes: 2.3
    ChimeraX-BasicActions: 1.1.2
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 2.1.2
    ChimeraX-BondRot: 2.0.1
    ChimeraX-BugReporter: 1.0.1
    ChimeraX-BuildStructure: 2.7.2
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.2
    ChimeraX-ButtonPanel: 1.0.1
    ChimeraX-CageBuilder: 1.0.1
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.3.1
    ChimeraX-ChangeChains: 1.0.2
    ChimeraX-CheckWaters: 1.3.1
    ChimeraX-ChemGroup: 2.0
    ChimeraX-Clashes: 2.2.4
    ChimeraX-Clipper: 0.20.0
    ChimeraX-ColorActions: 1.0.3
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5.2
    ChimeraX-CommandLine: 1.2.5
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0.1
    ChimeraX-Core: 1.6.dev202212302205
    ChimeraX-CoreFormats: 1.1
    ChimeraX-coulombic: 1.4.1
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0.1
    ChimeraX-DataFormats: 1.2.3
    ChimeraX-Dicom: 1.1
    ChimeraX-DistMonitor: 1.3
    ChimeraX-DockPrep: 1.1
    ChimeraX-Dssp: 2.0
    ChimeraX-EMDB-SFF: 1.0
    ChimeraX-ESMFold: 1.0
    ChimeraX-ExperimentalCommands: 1.0
    ChimeraX-FileHistory: 1.0.1
    ChimeraX-FunctionKey: 1.0.1
    ChimeraX-Geometry: 1.2
    ChimeraX-gltf: 1.0
    ChimeraX-Graphics: 1.1
    ChimeraX-Hbonds: 2.4
    ChimeraX-Help: 1.2.1
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.1
    ChimeraX-ImageFormats: 1.2
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0.1
    ChimeraX-ISOLDE: 1.6.dev0
    ChimeraX-ItemsInspection: 1.0.1
    ChimeraX-Label: 1.1.7
    ChimeraX-ListInfo: 1.1.1
    ChimeraX-Log: 1.1.5
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.8.2
    ChimeraX-Map: 1.1.3
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0.1
    ChimeraX-MapFilter: 2.0.1
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.1.1
    ChimeraX-Markers: 1.0.1
    ChimeraX-Mask: 1.0.1
    ChimeraX-MatchMaker: 2.0.11
    ChimeraX-MDcrds: 2.6
    ChimeraX-MedicalToolbar: 1.0.2
    ChimeraX-Meeting: 1.0.1
    ChimeraX-MLP: 1.1
    ChimeraX-mmCIF: 2.10
    ChimeraX-MMTF: 2.2
    ChimeraX-Modeller: 1.5.8
    ChimeraX-ModelPanel: 1.3.6
    ChimeraX-ModelSeries: 1.0.1
    ChimeraX-Mol2: 2.0
    ChimeraX-Mole: 1.0
    ChimeraX-Morph: 1.0.1
    ChimeraX-MouseModes: 1.2
    ChimeraX-Movie: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nucleotides: 2.0.3
    ChimeraX-OpenCommand: 1.9.3
    ChimeraX-PDB: 2.6.10
    ChimeraX-PDBBio: 1.0
    ChimeraX-PDBLibrary: 1.0.2
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0.1
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.1
    ChimeraX-PubChem: 2.1
    ChimeraX-ReadPbonds: 1.0.1
    ChimeraX-Registration: 1.1.1
    ChimeraX-RemoteControl: 1.0
    ChimeraX-RenderByAttr: 1.0
    ChimeraX-RenumberResidues: 1.1
    ChimeraX-ResidueFit: 1.0.1
    ChimeraX-RestServer: 1.1
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 3.0
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.5.1
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0.1
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.8.1
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0.1
    ChimeraX-Shortcuts: 1.1.1
    ChimeraX-ShowSequences: 1.0.1
    ChimeraX-SideView: 1.0.1
    ChimeraX-Smiles: 2.1
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.10.1
    ChimeraX-STL: 1.0
    ChimeraX-Storm: 1.0
    ChimeraX-StructMeasure: 1.1.1
    ChimeraX-Struts: 1.0.1
    ChimeraX-Surface: 1.0
    ChimeraX-SwapAA: 2.0.1
    ChimeraX-SwapRes: 2.2
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.1.2
    ChimeraX-ToolshedUtils: 1.2.1
    ChimeraX-Topography: 1.0
    ChimeraX-Tug: 1.0.1
    ChimeraX-UI: 1.26
    ChimeraX-uniprot: 2.2.1
    ChimeraX-UnitCell: 1.0.1
    ChimeraX-ViewDockX: 1.1.6
    ChimeraX-VIPERdb: 1.0
    ChimeraX-Vive: 1.1
    ChimeraX-VolumeMenu: 1.0.1
    ChimeraX-VTK: 1.0
    ChimeraX-WavefrontOBJ: 1.0
    ChimeraX-WebCam: 1.0.1
    ChimeraX-WebServices: 1.1.1
    ChimeraX-Zone: 1.0.1
    colorama: 0.4.5
    comm: 0.1.2
    comtypes: 1.1.10
    contourpy: 1.0.6
    cxservices: 1.2
    cycler: 0.11.0
    Cython: 0.29.32
    debugpy: 1.6.4
    decorator: 5.1.1
    docutils: 0.19
    entrypoints: 0.4
    executing: 1.2.0
    filelock: 3.7.1
    fonttools: 4.38.0
    funcparserlib: 1.0.1
    grako: 3.16.5
    h5py: 3.7.0
    html2text: 2020.1.16
    idna: 3.4
    ihm: 0.35
    imagecodecs: 2022.9.26
    imagesize: 1.4.1
    importlib-metadata: 6.0.0
    ipykernel: 6.19.2
    ipython: 8.7.0
    ipython-genutils: 0.2.0
    jedi: 0.18.2
    Jinja2: 3.1.2
    jupyter-client: 7.4.8
    jupyter-core: 5.1.1
    kiwisolver: 1.4.4
    line-profiler: 3.5.1
    lxml: 4.9.1
    lz4: 4.0.2
    MarkupSafe: 2.1.1
    matplotlib: 3.6.2
    matplotlib-inline: 0.1.6
    msgpack: 1.0.4
    nest-asyncio: 1.5.6
    netCDF4: 1.6.0
    networkx: 2.8.8
    numexpr: 2.8.4
    numpy: 1.23.5
    openvr: 1.23.701
    packaging: 22.0
    ParmEd: 3.4.3
    parso: 0.8.3
    pep517: 0.13.0
    pickleshare: 0.7.5
    Pillow: 9.3.0
    pip: 22.2.2
    pkginfo: 1.8.3
    platformdirs: 2.6.2
    prompt-toolkit: 3.0.36
    psutil: 5.9.4
    pure-eval: 0.2.2
    pycollada: 0.7.2
    pydicom: 2.3.0
    Pygments: 2.12.0
    PyOpenGL: 3.1.5
    PyOpenGL-accelerate: 3.1.5
    pyparsing: 3.0.9
    PyQt6-commercial: 6.4.0
    PyQt6-Qt6: 6.4.1
    PyQt6-sip: 13.4.0
    PyQt6-WebEngine-commercial: 6.4.0
    PyQt6-WebEngine-Qt6: 6.4.1
    python-dateutil: 2.8.2
    pytz: 2022.7
    pywin32: 303
    pyzmq: 24.0.1
    qtconsole: 5.4.0
    QtPy: 2.3.0
    RandomWords: 0.4.0
    requests: 2.28.1
    scipy: 1.9.3
    setuptools: 65.1.1
    sfftk-rw: 0.7.2
    six: 1.16.0
    snowballstemmer: 2.2.0
    sortedcontainers: 2.4.0
    Sphinx: 5.1.1
    sphinx-autodoc-typehints: 1.19.1
    sphinxcontrib-applehelp: 1.0.2
    sphinxcontrib-blockdiag: 3.0.0
    sphinxcontrib-devhelp: 1.0.2
    sphinxcontrib-htmlhelp: 2.0.0
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 1.0.3
    sphinxcontrib-serializinghtml: 1.1.5
    stack-data: 0.6.2
    tables: 3.7.0
    tifffile: 2022.10.10
    tinyarray: 1.2.4
    tomli: 2.0.1
    tornado: 6.2
    traitlets: 5.8.0
    urllib3: 1.26.13
    wcwidth: 0.2.5
    webcolors: 1.12
    wheel: 0.37.1
    wheel-filename: 1.4.1
    WMI: 1.5.1
    zipp: 3.11.0
File attachment: Screenshot_20230104_163126.png

Screenshot_20230104_163126.png

Attachments (2)

Screenshot_20230104_163126.png (45.2 KB ) - added by Tristan Croll 3 years ago.
Added by email2trac
chimerax_launched_at_200pc.png (1.1 MB ) - added by Tristan Croll 3 years ago.
Added by email2trac

Download all attachments as: .zip

Change History (14)

by Tristan Croll, 3 years ago

Added by email2trac

comment:1 by pett, 3 years ago

Cc: chimera-programmers added
Component: UnassignedWindow Toolkit
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionFont sizes in daily build

On my (Intel, 10.15.7) Mac, 1.5 and the daily build fonts seem to be the same size.

in reply to:  3 comment:2 by Tristan Croll, 3 years ago

Hmm... odd. Appears to be something to do with the external monitor I was
using - a fresh ChimeraX session on the same laptop with no external
monitor looks completely normal.

On Wed, Jan 4, 2023 at 6:01 PM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:

comment:3 by Tom Goddard, 3 years ago

So with an external display on Windows 10 you find that ChimeraX daily build and ChimeraX 1.5 produce different font sizes? ChimeraX 1.5 uses Qt 6.3 while the daily build uses Qt 6.4, updated December 1, 2022, so maybe Qt 6.4 change some behavior.

What is the Windows display scaling you are using on the external display? Does changing that display scaling effect the font sizes relative to other gui elements?

The Log panel is a QWebEngineView for rendering html which Qt does using Chrome using a separate process. The Qt scheme for rendering html is really hacky and I have seen in the past that it's choice of font sizes seems independent of what other Qt widgets use for fonts. So it is not surprising that the Log and Models panel would have different fonts and font sizes.

in reply to:  5 comment:4 by Tristan Croll, 3 years ago

Will do a little more probing once I’m back in the office tomorrow. It’s a
crazy high-res display for its size, so I suspect the scaling is set pretty
high. I was also idly wondering if it might have something to do with me
using both the laptop and external display in an extended-desktop setup,
with the two displays having different scaling settings.

On Wed, 4 Jan 2023 at 21:08, ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:

comment:5 by Tom Goddard, 3 years ago

Qt chooses default font sizes. From your attached screenshot I see the Models panel doesn't center the color button vertically with the model name when the font gets large. This could be improved. In general all the ChimeraX user interfaces are likely to look not as good if the fonts are made large. The UIs could be improved to look better with a range of font sizes.

I suspect that Qt 6.4 has decided to use different font sizes because of the Windows display scaling in use on your external display. I'm not keen on overriding what Qt does to choose font sizes unless it does something really horrible.

in reply to:  7 comment:6 by Tristan Croll, 3 years ago

Yeah, it's the display scaling... but it really seems like Qt is doing
something silly - compounding the scaling by increasing the point size of
fonts with increasing scaling, which effectively makes the size of each
character on screen increase with the square of the scale factor. I'm
working on a 24" monitor at 4k resolution. The Windows-recommended scale
factor is 150%, which does feel about right for me (125% is bearable, 100%
is *tiny*). I could honestly see some people choosing to go as high as
200%... here's a screenshot of what that looks like. Definitely a new
"feature" of Qt - everything looks perfectly normal in ChimeraX 1.5.

On Wed, Jan 4, 2023 at 9:13 PM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:

chimerax_launched_at_200pc.png

by Tristan Croll, 3 years ago

Added by email2trac

in reply to:  9 ; comment:7 by Tristan Croll, 3 years ago

Seems Windows-specific - plugged the same monitor into my Ubuntu 22.04 box
and set the display scaling to 200%, started ChimeraX and everything looks
normal.

On Thu, Jan 5, 2023 at 9:26 AM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:

comment:8 by Tom Goddard, 3 years ago

Owner: changed from Tom Goddard to Greg Couch

There are many Qt bug reports about the Windows font sizes became too large in Qt 6.4 while correct in 6.3.

It appears it is fixed in Qt 6.4.2.

https://codereview.qt-project.org/c/qt/qtbase/+/441694

ChimeraX daily build is currently using Qt 6.4.1 but will update to Qt 6.4.2 at some point. Greg Couch does those updates so reassigning to him.

Here are some of the Qt bug reports

https://bugreports.qt.io/browse/QTBUG-108481
https://bugreports.qt.io/browse/QTBUG-108593
https://bugreports.qt.io/browse/QTBUG-105857

comment:9 by Tom Goddard, 3 years ago

Greg, when you update to Qt 6.4.2 could you let Tristan know so he can test if the font size problem is fixed on Windows with large display scaling?

comment:10 by Greg Couch, 3 years ago

Qt 6.4.2 was released today. Need to wait for Python package PyQt6-Qt6 6.4.2 to come out.

in reply to:  13 comment:11 by Tristan Croll, 3 years ago

If it’s just a Qt bug that’ll be fixed by the next release then there’s no
urgency on my part. Was just worried that I might have to do some painful
rejigging of ISOLDE’s GUI.

On Thu, 5 Jan 2023 at 19:05, ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:

comment:12 by Greg Couch, 3 years ago

Status: assignedfeedback

The next daily build will have Qt 6.4.2 in it. And the corresponding new version of QtWebEngine. Please test it and let us know if that fixes your problem.

Note: See TracTickets for help on using tickets.