Giter Site home page Giter Site logo

Comments (12)

hmaarrfk avatar hmaarrfk commented on July 17, 2024 2

I came here to see if this was indeed a qtpy issue or a PySide6 issue, and it seems to in fact be some strange interaction:

Even reducing the imports to the strict minimum:

import sys
from PySide6.QtWidgets import QTreeWidget, QTreeWidgetItem, QTextEdit, QListWidget, QSplitter, QWidget, QApplication, QHBoxLayout

class Example(QWidget):

I have a feeling it might be related to: https://bugreports.qt.io/browse/PYSIDE-2675

Will continue to investigate (fyi, I'm not a developer of qtpy, just a mere user trying to help)

from qtpy.

hmaarrfk avatar hmaarrfk commented on July 17, 2024 2

I really think it has something to do with their lazy import structure. The issue I referred to and some notes from https://wiki.qt.io/Qt_for_Python_Development_Notes hint that they are working through a few things with it.

import sys
from PySide6.QtWidgets import QWidget
from qtpy.QtWidgets import *
from qtpy.QtGui import *
from qtpy.QtCore import *

class Example(QWidget):

"works"
So I think it is related to the note:

image

from qtpy.

hmaarrfk avatar hmaarrfk commented on July 17, 2024 2

So FYI, for my code, I had to add above all other qtpy wigets imports and whatnot

import qtpy
if qtpy.PYSIDE6:
     from PySide6.QtWidgets import QWidget

with an adequate note as to when it can be removed. It isn't ideal, but it "works".

from qtpy.

hmaarrfk avatar hmaarrfk commented on July 17, 2024 1

The screenshot of their development notes indicates that * importing may be a source of problems.

This compatibility layer uses star style imports.

from qtpy.

ccordoba12 avatar ccordoba12 commented on July 17, 2024

@hmaarrfk, thanks for chiming in and providing additional context for this issue!

I doubt that this is a problem with Qtpy because for the most part it's a wrapper for PySide/PyQt (we patch some objects for compatibility between bindings and versions, but we try to keep that to a minimum).

from qtpy.

trwilliams79 avatar trwilliams79 commented on July 17, 2024

So FYI, for my code, I had to add above all other qtpy wigets imports and whatnot

import qtpy
if qtpy.PYSIDE6:
     from PySide6.QtWidgets import QWidget

with an adequate note as to when it can be removed. It isn't ideal, but it "works".

It should be noted that I'm not lazy importing in production code, just in the example. That said, I suspect the solution you provided will work. Its not ideal, but it should work. I'll have to try it out when I return to the office on Monday.

from qtpy.

ewerybody avatar ewerybody commented on July 17, 2024

I wonder if it works again If one unrolls ALL members that would be imported via * like:

...
elif PYSIDE6:
    import PySide6.QtCore
    from PySide6.QtCore import (
        ClassInfo, MetaFunction, Property, QAbstractAnimation, QAbstractEventDispatcher,
        QAbstractItemModel, QAbstractListModel, QAbstractNativeEventFilter, QAbstractProxyModel,
        QAbstractTableModel, QAnimationGroup, QBasicMutex, QBasicTimer, QBitArray, QBuffer,
        QByteArray, QByteArrayMatcher, QCborArray, QCborError, QCborKnownTags, QCborMap,
        QCborParserError, QCborSimpleType, QCborStreamReader, QCborStreamWriter,
        QCborStringResultByteArray, QCborStringResultString, QCborValue, QChildEvent, QCollator,
        QCollatorSortKey, QCommandLineOption, QCommandLineParser, QCoreApplication,
        QCryptographicHash, QDataStream, QDate ...

(snip from qtpy/QtCore.py)

Probably. I'm not gonna try for my hobby projects (will simply deprecate PySide2 support)
But might be an idea for qtpy (and our wrapper at work)

from qtpy.

trwilliams79 avatar trwilliams79 commented on July 17, 2024

The screenshot of their development notes indicates that * importing may be a source of problems.

This compatibility layer uses star style imports.

Ah, my bad, I misread what you'd originally entered.

from qtpy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.