Opened 4 years ago
Closed 4 years ago
#6335 closed defect (fixed)
Toolshed install of bundles broken with Qt 6
Reported by: | Owned by: | Zach Pearson | |
---|---|---|---|
Priority: | normal | Milestone: | 1.4 |
Component: | Window Toolkit | Version: | |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: Windows-10-10.0.22000 ChimeraX Version: 1.4.dev202203080653 (2022-03-08 06:53:52 UTC) Description Tried to install the RealSense bundle in Qt6 ChimeraX. Pressing the Install button on the Toolshed page for RealSense generated this error message. Log: You can double click a model's Name or ID in the model panel to edit those fields UCSF ChimeraX version: 1.4.dev202203080653 (2022-03-08) © 2016-2022 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open 7knq format mmcif fromDatabase pdb 7knq title: SARM1 Octamer [more info...] Chain information for 7knq #1 --- Chain | Description | UniProt A B C D E F G H | NAD(+) hydrolase SARM1 | SARM1_HUMAN > vr true > lighting simple started SteamVR rendering > preset cartoons/nucleotides cylinders/stubs Using preset: Cartoons/Nucleotides / Cylinders/Stubs Changed 36888 atom styles Preset expands to these ChimeraX commands: show nucleic hide protein|solvent|H surf hide style (protein|nucleic|solvent) & @@draw_mode=0 stick cartoon cartoon style modeh def arrows t arrowshelix f arrowscale 2 wid 2 thick 0.4 sides 12 div 20 cartoon style ~(nucleic|strand) x round cartoon style (nucleic|strand) x rect cartoon style protein modeh tube rad 2 sides 24 thick 0.6 cartoon style nucleic x round width 1.6 thick 1.6 nucleotides stubs VR mode select > select /A:395 11 atoms, 10 bonds, 1 residue, 1 model selected > select up 108 atoms, 107 bonds, 15 residues, 1 model selected > select up 1767 atoms, 1796 bonds, 223 residues, 1 model selected VR mode translate selected atoms > show sel atoms > hide sel cartoons > select up 4611 atoms, 4689 bonds, 588 residues, 1 model selected > hide sel cartoons > show sel atoms VR mode select > select clear > hide cartoons > select /A 4611 atoms, 4689 bonds, 2 pseudobonds, 588 residues, 2 models selected > select clear > show atoms > select /A 4611 atoms, 4689 bonds, 2 pseudobonds, 588 residues, 2 models selected > select /C:700@C 1 atom, 1 residue, 1 model selected > select /B:347@CD2 1 atom, 1 residue, 1 model selected > select up 11 atoms, 11 bonds, 1 residue, 1 model selected > select up 134 atoms, 135 bonds, 18 residues, 1 model selected > select clear > select up Nothing selected > select up Nothing selected > select up Nothing selected > select /B:85@CA 1 atom, 1 residue, 1 model selected > select up 5 atoms, 4 bonds, 1 residue, 1 model selected > select up 85 atoms, 85 bonds, 13 residues, 1 model selected > select up 1723 atoms, 1746 bonds, 225 residues, 1 model selected > select up 1742 atoms, 1765 bonds, 228 residues, 1 model selected > select up 3490 atoms, 3542 bonds, 448 residues, 1 model selected > select up 4611 atoms, 4689 bonds, 588 residues, 1 model selected > realsense on realsense is provided by the uninstalled bundle RealSense versions 1.2 – 1.8 > vr false > toolshed show Downloading bundle ChimeraX_RealSense-1.8-cp39-cp39-win_amd64.whl Traceback (most recent call last): File "C:\Program Files\ChimeraX-Qt6-Mar-8-2022\bin\lib\site- packages\chimerax\help_viewer\tool.py", line 359, in download_requested item.downloadProgress.connect(self.download_progress) AttributeError: 'QWebEngineDownloadRequest' object has no attribute 'downloadProgress' AttributeError: 'QWebEngineDownloadRequest' object has no attribute 'downloadProgress' File "C:\Program Files\ChimeraX-Qt6-Mar-8-2022\bin\lib\site- packages\chimerax\help_viewer\tool.py", line 359, in download_requested item.downloadProgress.connect(self.download_progress) See log for complete Python traceback. OpenGL version: 3.3.0 NVIDIA 472.08 OpenGL renderer: NVIDIA GeForce RTX 3090/PCIe/SSE2 OpenGL vendor: NVIDIA Corporation Locale: en_US.cp1252 Qt version: PyQt6 6.2.3, Qt 6.2.3 Qt platform: windows Manufacturer: HP Model: OMEN 30L Desktop GT13-0xxx OS: Microsoft Windows 11 Pro (Build 22000) Memory: 68,576,903,168 MaxProcessMemory: 137,438,953,344 CPU: 20 Intel(R) Core(TM) i9-10850K CPU @ 3.60GHz OSLanguage: en-US Installed Packages: alabaster: 0.7.12 appdirs: 1.4.4 Babel: 2.9.1 backcall: 0.2.0 blockdiag: 3.0.0 certifi: 2021.10.8 cftime: 1.6.0 charset-normalizer: 2.0.12 ChimeraX-AddCharge: 1.2.3 ChimeraX-AddH: 2.1.11 ChimeraX-AlignmentAlgorithms: 2.0 ChimeraX-AlignmentHdrs: 3.2.1 ChimeraX-AlignmentMatrices: 2.0 ChimeraX-Alignments: 2.2.3 ChimeraX-AlphaFold: 1.0 ChimeraX-AltlocExplorer: 1.0.1 ChimeraX-AmberInfo: 1.0 ChimeraX-Arrays: 1.0 ChimeraX-Atomic: 1.36.2 ChimeraX-AtomicLibrary: 6.1.1 ChimeraX-AtomSearch: 2.0.1 ChimeraX-AxesPlanes: 2.1 ChimeraX-BasicActions: 1.1 ChimeraX-BILD: 1.0 ChimeraX-BlastProtein: 2.0 ChimeraX-BondRot: 2.0 ChimeraX-BugReporter: 1.0 ChimeraX-BuildStructure: 2.6.1 ChimeraX-Bumps: 1.0 ChimeraX-BundleBuilder: 1.1 ChimeraX-ButtonPanel: 1.0 ChimeraX-CageBuilder: 1.0 ChimeraX-CellPack: 1.0 ChimeraX-Centroids: 1.2 ChimeraX-ChemGroup: 2.0 ChimeraX-Clashes: 2.2.2 ChimeraX-ColorActions: 1.0 ChimeraX-ColorGlobe: 1.0 ChimeraX-ColorKey: 1.5.1 ChimeraX-CommandLine: 1.2.1 ChimeraX-ConnectStructure: 2.0.1 ChimeraX-Contacts: 1.0 ChimeraX-Core: 1.4.dev202203080653 ChimeraX-CoreFormats: 1.1 ChimeraX-coulombic: 1.3.2 ChimeraX-Crosslinks: 1.0 ChimeraX-Crystal: 1.0 ChimeraX-CrystalContacts: 1.0 ChimeraX-DataFormats: 1.2.2 ChimeraX-Dicom: 1.0 ChimeraX-DistMonitor: 1.1.5 ChimeraX-Dssp: 2.0 ChimeraX-EMDB-SFF: 1.0 ChimeraX-ExperimentalCommands: 1.0 ChimeraX-FileHistory: 1.0 ChimeraX-FunctionKey: 1.0 ChimeraX-Geometry: 1.1 ChimeraX-gltf: 1.0 ChimeraX-Graphics: 1.1 ChimeraX-Hbonds: 2.1.2 ChimeraX-Help: 1.2 ChimeraX-HKCage: 1.3 ChimeraX-IHM: 1.1 ChimeraX-ImageFormats: 1.2 ChimeraX-IMOD: 1.0 ChimeraX-IO: 1.0.1 ChimeraX-ItemsInspection: 1.0 ChimeraX-Label: 1.1 ChimeraX-ListInfo: 1.1.1 ChimeraX-Log: 1.1.5 ChimeraX-LookingGlass: 1.1 ChimeraX-Maestro: 1.8.1 ChimeraX-Map: 1.1 ChimeraX-MapData: 2.0 ChimeraX-MapEraser: 1.0 ChimeraX-MapFilter: 2.0 ChimeraX-MapFit: 2.0 ChimeraX-MapSeries: 2.1 ChimeraX-Markers: 1.0 ChimeraX-Mask: 1.0 ChimeraX-MatchMaker: 2.0.6 ChimeraX-MDcrds: 2.6 ChimeraX-MedicalToolbar: 1.0.1 ChimeraX-Meeting: 1.0 ChimeraX-MLP: 1.1 ChimeraX-mmCIF: 2.7 ChimeraX-MMTF: 2.1 ChimeraX-Modeller: 1.5.2 ChimeraX-ModelPanel: 1.3.2 ChimeraX-ModelSeries: 1.0 ChimeraX-Mol2: 2.0 ChimeraX-Morph: 1.0 ChimeraX-MouseModes: 1.1 ChimeraX-Movie: 1.0 ChimeraX-Neuron: 1.0 ChimeraX-Nucleotides: 2.0.2 ChimeraX-OpenCommand: 1.8 ChimeraX-PDB: 2.6.6 ChimeraX-PDBBio: 1.0 ChimeraX-PDBLibrary: 1.0.2 ChimeraX-PDBMatrices: 1.0 ChimeraX-PickBlobs: 1.0 ChimeraX-Positions: 1.0 ChimeraX-PresetMgr: 1.1 ChimeraX-PubChem: 2.1 ChimeraX-ReadPbonds: 1.0.1 ChimeraX-Registration: 1.1 ChimeraX-RemoteControl: 1.0 ChimeraX-ResidueFit: 1.0 ChimeraX-RestServer: 1.1 ChimeraX-RNALayout: 1.0 ChimeraX-RotamerLibMgr: 2.0.1 ChimeraX-RotamerLibsDunbrack: 2.0 ChimeraX-RotamerLibsDynameomics: 2.0 ChimeraX-RotamerLibsRichardson: 2.0 ChimeraX-SaveCommand: 1.5 ChimeraX-SchemeMgr: 1.0 ChimeraX-SDF: 2.0 ChimeraX-Segger: 1.0 ChimeraX-Segment: 1.0 ChimeraX-SelInspector: 1.0 ChimeraX-SeqView: 2.4.7 ChimeraX-Shape: 1.0.1 ChimeraX-Shell: 1.0 ChimeraX-Shortcuts: 1.1 ChimeraX-ShowAttr: 1.0 ChimeraX-ShowSequences: 1.0 ChimeraX-SideView: 1.0 ChimeraX-Smiles: 2.1 ChimeraX-SmoothLines: 1.0 ChimeraX-SpaceNavigator: 1.0 ChimeraX-StdCommands: 1.8 ChimeraX-STL: 1.0 ChimeraX-Storm: 1.0 ChimeraX-StructMeasure: 1.0.1 ChimeraX-Struts: 1.0.1 ChimeraX-Surface: 1.0 ChimeraX-SwapAA: 2.0 ChimeraX-SwapRes: 2.1.1 ChimeraX-TapeMeasure: 1.0 ChimeraX-Test: 1.0 ChimeraX-Toolbar: 1.1 ChimeraX-ToolshedUtils: 1.2.1 ChimeraX-Tug: 1.0 ChimeraX-UI: 1.16.2 ChimeraX-uniprot: 2.2 ChimeraX-UnitCell: 1.0 ChimeraX-ViewDockX: 1.1.2 ChimeraX-VIPERdb: 1.0 ChimeraX-Vive: 1.1 ChimeraX-VolumeMenu: 1.0 ChimeraX-VTK: 1.0 ChimeraX-WavefrontOBJ: 1.0 ChimeraX-WebCam: 1.0 ChimeraX-WebServices: 1.0 ChimeraX-Zone: 1.0 colorama: 0.4.4 comtypes: 1.1.10 cxservices: 1.1 cycler: 0.11.0 Cython: 0.29.26 debugpy: 1.5.1 decorator: 5.1.1 docutils: 0.17.1 entrypoints: 0.4 filelock: 3.4.2 fonttools: 4.29.1 funcparserlib: 1.0.0a0 grako: 3.16.5 h5py: 3.6.0 html2text: 2020.1.16 idna: 3.3 ihm: 0.26 imagecodecs: 2021.11.20 imagesize: 1.3.0 ipykernel: 6.6.1 ipython: 7.31.1 ipython-genutils: 0.2.0 jedi: 0.18.1 Jinja2: 3.0.3 jupyter-client: 7.1.0 jupyter-core: 4.9.2 kiwisolver: 1.3.2 line-profiler: 3.4.0 lxml: 4.7.1 lz4: 3.1.10 MarkupSafe: 2.1.0 matplotlib: 3.5.1 matplotlib-inline: 0.1.3 msgpack: 1.0.3 nest-asyncio: 1.5.4 netCDF4: 1.5.8 networkx: 2.6.3 numexpr: 2.8.1 numpy: 1.22.1 openvr: 1.16.802 packaging: 21.3 ParmEd: 3.4.3 parso: 0.8.3 pickleshare: 0.7.5 Pillow: 9.0.0 pip: 21.3.1 pkginfo: 1.8.2 prompt-toolkit: 3.0.28 psutil: 5.9.0 pycollada: 0.7.2 pydicom: 2.2.2 Pygments: 2.11.2 PyOpenGL: 3.1.5 PyOpenGL-accelerate: 3.1.5 pyparsing: 3.0.7 PyQt6-commercial: 6.2.3 PyQt6-sip: 13.2.0 PyQt6-WebEngine-commercial: 6.2.1 python-dateutil: 2.8.2 pytz: 2021.3 pywin32: 303 pyzmq: 22.3.0 qtconsole: 5.2.2 QtPy: 2.0.1 RandomWords: 0.3.0 requests: 2.27.1 scipy: 1.7.3 setuptools: 59.8.0 sfftk-rw: 0.7.1 six: 1.16.0 snowballstemmer: 2.2.0 sortedcontainers: 2.4.0 Sphinx: 4.3.2 sphinx-autodoc-typehints: 1.15.2 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 suds-community: 1.0.0 tables: 3.7.0 tifffile: 2021.11.2 tinyarray: 1.2.4 tornado: 6.1 traitlets: 5.1.1 urllib3: 1.26.8 wcwidth: 0.2.5 webcolors: 1.11.1 wheel: 0.37.1 wheel-filename: 1.3.0 WMI: 1.5.1
Change History (5)
comment:1 by , 4 years ago
Component: | Unassigned → Window Toolkit |
---|---|
Milestone: | → 1.4 |
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → Toolshed install of bundles broken with Qt 6 |
comment:2 by , 4 years ago
follow-up: 3 comment:3 by , 4 years ago
I'd suggest just having a minimal amount of separate Qt 5 and Qt 6 code in the help viewer. from Qt import using_qt5, using_qt6 if using_qt5: # Setup Qt 5 download callback elif using_qt6: # Setup Qt 6 download callback. After we release our last Qt 5 ChimeraX with the 1.4 release it will be easy to find the "using_qt5" parts of the code and rip them out. This is the approach I took yesterday in fixing the webcam command where Qt changed the video APIs. I would not try to do tricky things in the Qt shim.
comment:4 by , 4 years ago
I think I'll go with your suggestion; it seems both even simpler and less prone to breakage than what I was getting at. Thank you!
comment:5 by , 4 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Should be fixed by this commit. Additionally, I modified QtWebEngineCore in the shim to promote its enums in this commit using the same pattern from QtGui. Hopefully this does not have knock-on effects.
Note:
See TracTickets
for help on using tickets.
QWebEngineDownloadItem from Qt5 has moved to QWebEngineDownloadRequest in Qt6. The signal being referenced, downloadProgress, has been split into two signals that independently report one of the two values downloadProgress reported together: receivedBytesChanged and totalBytesChanged.
Since we want backwards compatibility with Qt5 for now, we could potentially fix this in the shim. We can add the signal back to QWebEngineDownloadRequest right after we do the star import from PyQt6.QtWebEngineCore, then hack it so that receivedBytesChanged or totalBytesChanged triggers downloadProgress, but it might be simpler to do a compatibility breaking change in the help_viewer bundle. We might build the Qt6 build of ChimeraX from a Qt6-specific branch getting synchronized to develop nightly plus Qt6 specific patches, instead of applying the Qt6 patch to develop before building it.