Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Cristián Maureira-Fredes
    @cmaureir
    @j9ac9k sorry I missed your message. I think we can totally do it breaking the API and having our own *Np methods, at least it's easier. Do you have other methods in mind? maybe something that's heavily used by pyqtgraph? feel free to open Suggestions on JIRA mentioned which other methods deserve a better integration
    Ogi Moore
    @j9ac9k
    @cmaureir we're in very different time-zones, no need to apologize. I'll have to check the library for some specifics, we built our own function for attempting to get fast numpy array -> QPainterPath; unfortunately the QPainterPath is invalid/invisible if there is one (or more) np.NaN values in the numpy array (this was new behavior in Qt 5.12.3) so having to screen for NaN values and fill them in was an unfortunate performance hit we had to take; would be great if we don't have to do that check at least (I can certainly open an issue in JIRA with specifics/reproducible code).
    Ogi Moore
    @j9ac9k
    We recently overhauled our Scatter Plot functionality, one area that would help us with scatter plots is if we could create QRectF(numpy-array) where the numpy array contains elements that can be passed to the QRectF initializer. ... doing these in a for loop has been remarkably expensive... again, I have no problem posting an issue on the JIRA board, it makes me so happy to see you all willing to expose numpy -> graphicsview objects functionality...
    From IRC (bridge bot)
    @FromIRC
    <devslash> has anyone used qtmodern library?
    From IRC (bridge bot)
    @FromIRC
    <fmul> hi all. i'm stuck here. i'm getting this "QObject::~QObject: Timers cannot be stopped from another thread" message
    <fmul> the message itself isn't cryptic but the current situation seems so
    <fmul> i have commented out every single QTimer, startTimer, killTimer, singleShot etc reference in the code
    <fmul> and i'm still getting this message
    <fmul> does anybody have any idea of how i could debug this?
    <fmul> the message pops up when i click on a button
    Cristián Maureira-Fredes
    @cmaureir
    @j9ac9k not sure if an implementation from our side would help, but I think opening an issue on JIRA would be better to discuss the details. From the top of my head, I see problem might have 2 options, we either do a special function to clean nan values (so we do it at CPython's level) with a new function or we add some flag to some existing methods so you can enable/disable the feature.
    I'd say better we continue the discussion on JIRA, but they seem to be methods we can add to the experimental support we mentioned on the blog post
    Ogi Moore
    @j9ac9k
    can certainly open a JIRA issue, we're filing for the CZI grant now, but once that's over I'll coordinate w/ some of the other maintainers to be more specific. I can't stress how excited we are that this functionality you all are interested in providing.
    From IRC (bridge bot)
    @FromIRC
    <x10A94> Hello! I'm trying to use openGL, and the window does some weird stuff upon resizing - it wobbles around because it's anchored to the bottom, not the top. How can I fix this?
    <x10A94> I can't run the opengl example at all because it seems to immediately segfault.
    <x10A94> the textures example also fails
    From IRC (bridge bot)
    @FromIRC
    <x10A94> ..have these examples not been updated to qt6 at all?
    From IRC (bridge bot)
    @FromIRC
    <x10A94> Also, can I have vsync somehow?
    Marko Shiva Pavlovic
    @MarkoShiva
    @cmaureir what is the status of the https://bugreports.qt.io/browse/PYSIDE-1216 in the current development?
    is it planned to be added. It would be very beneficial. are there some additional problems to not add iterator on the QlistWidget
    Cristián Maureira-Fredes
    @cmaureir
    totally missed that @MarkoShiva, it will certainly an excellent addition, I think it makes sense for other widgets as well. Will try to prepare an internal message to gather more thoughts on it, so we can enable this for the whole project
    Ogi Moore
    @j9ac9k
    @cmaureir I'm going to open an issue on JIRA for technical discussion, but just as a heads up, I'm going to request a QPainter.drawPixmapNp(ndarray, QPixmap) method; where ndarray is of shape (4, n) or (n, 4) where each component corresponds to x, y, w, h bit. This is probably the most analogous pain point we're having that's similar to the methods introduced with experimental support in PySide6 6.1... I'll detail what we currently do, but if there is something specific you'd like to see in the JIRA post, let me know and I'll be sure to include it.
    stonebig
    @stonebig
    hi, you announce better pypy compatiblity for PySide-6.1 but I don't find a wheel, do I miss something ?
    Christian Tismer-Sperling
    @ctismer
    @stonebig this was not announced. It is investigated and not yet working.
    From IRC (bridge bot)
    @FromIRC
    <sonne> @ctismer, ping
    From IRC (bridge bot)
    @FromIRC
    <lebeef> Hello Folks, did anyone experience problems when using Video from QtMultimedia and QtQuick3D. The videos are not visible anymore when I use QtQuick3D. I can here the sound but the image is black.
    <lebeef> hear not here, sorry.
    stonebig
    @stonebig
    PyPy3 is now compatible with Jupyter on Windows10 64bit, on my PC at least, so next achievement will be PySide6
    yui1993
    @yui1993
    is there a way to compile pyside2 as an android app
    Christian Tismer-Sperling
    @ctismer
    @yui1993 no, and never will be. PySide6 might support it, eventually.
    yui1993
    @yui1993
    I just went with pyQt5 it was literally just changing pyside2 to PyQt5 now ill use pyqtdeploy
    From IRC (bridge bot)
    @FromIRC
    <cmaureir> IMPORTANT INFORMATION: From discussions on the development mailing list, it looks like we are migrating from Freenode to Libera https://libera.chat/, once it's official the channel will exist on that network. For the Gitter integration, we might take some time to switch networks (hopefully days). For more information, I recommend you check this thread: https://lists.qt-project.org/pipermail/development/2021-May/041354.html
    Cristián Maureira-Fredes
    @cmaureir
    @yui1993 good luck with that. I have never success to make it work. You might want to join the #pyqt channel on IRC for further questions on that regard. (The-Compiler, do they have a different chat platform?)
    From IRC (bridge bot)
    @FromIRC
    <The-Compiler> no idea, it's never been official
    <cmaureir> fair enough
    <The-Compiler> I think nobody really owns it. Maybe I should see if I can own #pyqt on libera with Riverbank's blessing
    From IRC (bridge bot)
    @FromIRC
    <cmaureir> that would make sense, yeah. Since it's not the official, not sure if people is discussing it already. Maybe a email to Phil will do :⁠P
    Ogi Moore
    @j9ac9k
    @cmaureir was doing some benchmarking in our numpy array -> QPainterPath generation, you all made some kind of big performance boost between PySide2 5.15.2 and PySide6 6.1 likely the process improved in the QDataStream >> QPainterPath operation, but hard to say for certain. If you happen to know what change could have caused that performance boost, I'd curious to know; but mostly wanted to say thank you :thumbsup:
    Cristián Maureira-Fredes
    @cmaureir
    Nice to read that! the work was for sure mainly frkleint improving shiboken and the bindings over, and over :) he was in charge of the numpy feature too.
    Regarding performance...it would be really good to have a general performance test, so we can compare overall the major/minor releases. I have no clue on what to focus on. Are you familiar with UI benchmarks @j9ac9k ?
    Ogi Moore
    @j9ac9k
    @cmaureir I have not heard of the UI benchmarks; to get my profiling results, I was comparing the runtime of 500 plot updates, where each plot update called our arrayToQPath function, and I looked at the pstat results for that function.
    I can certainly try to narrow down the specific version things changed, I know that 5.15.2 it was "slower" and 6.1 it is inline with PyQt5/6; there aren't that many versions in between, I can certainly rerun the profiling on each published version between the two and see if I can be more specific
    I suppose I'll share, that I found a "workaround" (exploring a bug/non-disclosed feature) of routing numpy arrays to QPolygonF; and then using QPainterPath.addPolygon()...that seems to have a 2x performance boost vs. the construction of the QDataStream and the use of the >> operator. ... the nifty thing for us is that this method does not check for NaN values (this is great for us), which normally is checked for during the construction of a QPainterPath object.
    Ogi Moore
    @j9ac9k
    just profiled on pyside6 6.0.0 and I saw the huge speedup there too (vs. 5.15.2); in case you're curious what I'm profiling, with numpy, pyqtgraph and pyside installed, I ran this file with yappi. The function I'm interested in is arrayToQPath in this use case; the runtime dropped by a factor of 2.5 since 5.15.2 :raised_hands:
    from pyqtgraph.Qt import QtGui, QtCore
    import numpy as np
    import pyqtgraph as pg
    from pyqtgraph.ptime import time
    import yappi
    app = pg.mkQApp("Plot Speed Test")
    yappi.start(builtins=True)
    p = pg.plot()
    p.setWindowTitle('pyqtgraph example: PlotSpeedTest')
    p.setRange(QtCore.QRectF(0, -10, 5000, 20)) 
    p.setLabel('bottom', 'Index', units='B')
    curve = p.plot()
    
    data = np.random.normal(size=(50, 5000))
    ptr = 0
    lastTime = time()
    fps = None
    count = 0
    
    def update():
        global curve, data, ptr, p, lastTime, fps, count
        count += 1
        if count == 500:
            pg.mkQApp().exit()
        curve.setData(data[ptr % 10], connect='all', skipFiniteCheck=True)
        ptr += 1
        app.processEvents()  ## force complete redraw for every plot
    
    timer = QtCore.QTimer()
    timer.timeout.connect(update)
    timer.start(0)
    
    if __name__ == '__main__':
        pg.exec()
    Cristián
    @crmaurei:matrix.org
    [m]
    I always forget, but who was in charge of the 'FromIRC' bot? ctismer was it you? or maybe you The-Compiler ?
    From IRC (bridge bot)
    @FromIRC
    <cmaureir> ctismer: ping
    From IRC (bridge bot)
    @FromIRC
    <The-Compiler> not me
    Cristián
    @crmaurei:matrix.org
    [m]
    do you happen to recall who was it? :/
    From IRC (bridge bot)
    @FromIRC
    <The-Compiler> The hostname is pryp.in, so whoever Oleh Prypin / blaxpirit was
    <The-Compiler> not sure if he has a different nick in IRC