I wonder if this is possible: * have multiple layers of graphical items, each backed by a pixmap * changing an graphical item would only trigger the repainting of the pixmap for the corresponding layer * the final paint would be a composition of the pixmaps
This would allow for faster updates in the cases where only a few items are changed (shifted curves, cusor, etc.). In my use case there is a single curve per viewbox, and the viewboxes are X-linked, so a Y zoom change would not affect the rest of the viewboxes. I don't know how the ideas above impact having multiple curves per viewbox. Pe vineri, 11 februarie 2022, la 09:05:44 UTC+2, Daniel Hrisca a scris: > It's not clear to me how the changes made in PlotCurveItem could impact a > PlotWidget with multiple curves. > > Pe joi, 10 februarie 2022, la 17:22:51 UTC+2, [email protected] a scris: > >> Hi, >> >> For this sort of thing, the trick is to get all the lines to do a repaint >> in one go instead of repainting one line at a time. >> >> A while back, Kenneth Lyons did a proof of concept to make that work >> (note it requires altering some library code); but I would start with >> something like this first: >> >> https://github.com/pyqtgraph/pyqtgraph/issues/1039#issuecomment-533756769 >> >> On Wed, Feb 9, 2022 at 11:26 PM Daniel Hrisca <[email protected]> >> wrote: >> >>> Hello, >>> >>> for my plots I use an Infinite vertical line to simulate a Cursor. When >>> the cursor is dragged by the user the instantaneous signal values at that >>> timestamp are reported to the user in a different widget. >>> >>> My issue is that with a large signal count (let's say 4000 signals) >>> moving the cursor triggers a complete repaint that is really slow to >>> execute. >>> >>> Is there some way to have like an overlay where the bottom layer >>> contains the signal curves (and thus dos not require a repaint when the >>> cursor is moved) and the top layer contains the Cursor? >>> >>> Thanks! >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "pyqtgraph" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/pyqtgraph/6417a3ef-2c79-48cb-a4f6-3d5f5fcc982an%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/pyqtgraph/6417a3ef-2c79-48cb-a4f6-3d5f5fcc982an%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- You received this message because you are subscribed to the Google Groups "pyqtgraph" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/pyqtgraph/2a2275e4-4cb6-454a-8ac3-919c8aef6d1bn%40googlegroups.com.
