I need fast plotting widget in Qt, but I don't want to use anything prepared.
I have some float data, for example QVector< float > data, and I need to paint it on widget. But I don't want use paintEvent and QPainter directly on it. Is there any chance to convert this data for bitmap (pixmap?) and just load it directly to show on widget? How I can create bitmap from float numbers?
Fast plotting with pixmap or bitmap in Qt
3.5k Views Asked by Tatarinho At
1
There are 1 best solutions below
Related Questions in QT
- C++ template using pointer and non pointer arguments in a QVector
- Using QPointer and QObject::connect with C++11
- qt How to style a QToolBar > QToolButton overflow button?
- Qt - Repeatedly write at beginning of file
- C++ Mongodb driver, not working
- deletion and cleanup of worker thread in Qt crashes
- How to drap item from QTableView to QPushButton?
- get image type from qimage
- C++ QT Getting part from QString
- How to connect a destroyed signal of C++ object from QML?
- How to get shader version from QOpenGLShader?
- Size of Qt QRadioButton able to get smaller, but not larger than default
- error WinSock.h has already been included Boost Windows Qt
- How to call a non-class member function with pointers as parameters with QtConcurrent::run?
- What is the difference between MinGW SEH and MinGW SJLJ?
Related Questions in PLOT
- Interactive plotting with R raster: values on mouseover
- Octave Real time plotting
- draw the y-label on the top of y axis
- How to use plotyy for 2 different plots inside a subplot?
- MatLab 3-vector plot/mesh with colour-scale
- Display value of Y axis inside GUI plot
- term frequency over time: how to plot +200 graphs in one plot with Python/pandas/matplotlib?
- R: ggplot2: Unable to plot points from a data.frame
- Combine base and ggplot graphics in R figure window in different pages
- Categorical scatter plot in Matlab
- Python3 embedding Matplotlib Plot inside GTK3 using Glade
- Plot: Add legend that overlay several Frames
- R: melting a data.frame to use in ggplot2 for multiple y-value plot
- Matlab: discontinuous plot
- How to plot colors on CIE 1931 Color Space in Matlab?
Related Questions in BITMAP
- How can I extract the bounds of a bitmap in a canvas from the values in the transformation matrix?
- Displaying bitmap image on Android (OpenCV)
- Change color of bitmap by color Transform Matrix not working
- TImagelist for large images
- crop bitmap in screen size from custom width
- Bitmap too large to be uploaded into a texture (3000x1547, max=2048x2048)
- Converting Bitmap to ByteArray and back to Bitmap not working
- Trying to make a random pixel in a bitmap a new color, but it is giving an error why
- Resizing images failing on start, setContentView & bitmap factory[android]
- Pass image URL/URI from Activity A to open as Image in Activity B Android
- Draw cirble bitmap in onDraw() ImageView without creating another bitmap
- android Bitmap Subsampling of Image
- fast converting Bitmap to BitmapSource wpf
- How to save image to sdcard when using Fresco?
- How to check each bit in 16 bit address in C
Related Questions in REPAINT
- Java repaint() not calling paintComponent
- Repaint methods are not being called and i get a blank frame as output
- paintComponent method not being called by repaint
- Java repaint updates only part of my Canvas
- Cannot repaint new elements without repainting old ones
- how to avoid Java graphics2D components to erase when minimizing or pooping up of Joptionpane?
- Java Swing - black border when resizing JFrame
- Why isn't this program repainting a certain part of an applet even when repaint() is called
- repaint in java not working
- Why is my JPanel not repainting on my JFrame?
- Unnecessary repaint of following siblings
- Applet AWT Canvas not updating graphics
- webkitTransitionEnd is triggered before repaint/reflow
- Java - Why does it not show an error dialog when the user gives in an unwanted input?
- Java square not moving
Related Questions in PIXMAP
- Libgdx: Dynamically increasing size of Pixmap
- Fast plotting with pixmap or bitmap in Qt
- How can an image to be displayed on a qdialog?
- libgdx- pixmap: can I somehow change the width of the line?
- Modifying transparency of Texture in LibGDX
- How can I resize my pixmap in GTK2
- Creating OFF SCREEN surface using Open GL ES 2.0
- Open GL ES creating Off-screen
- How to set maximum widths and heights for pixmaps?
- gnuplot: How to display transparent png with pixmap
- For xlib, how to create a child window with the background pixel or pixmap of its parent window?
- Got wrong pictures while saving ZPixmap to png
- How to save the image in a resized QLabel?
- What is the most efficient way to display multiple pixmaps into a scroll area?
- qt delay on off pixmap
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
If painting is overhead, you can move it to another thread, this way it will not lock up the event loop of your application, and the result will be updated when it is done.
Since you want arbitrary plots, there is really no magic way to "convert data to bitmap", you have to use
QPainterto draw your stuff.Here is a quick example how to use an async plotter object:
The plotter is created with its size, range and data parameters, I used a
QRectFfor the range, basically using the x/width and y/height as horizontal and vertical range. The plotter is a very naive implementation for the sake of example, and uses themap()method to "normalize" the data points to the area of the image that is being drawn onto in a linear fashion. I also added a timer to see how long it takes to plot all points.This is the example widget which is used to create the plot, populate the data and show the result:
For my example I populate the data with 200 000 values in the range 0-1. Then create the plotter with the size of the widget, the range 0-1 for X and Y, create the thread and move the plotter to it, do the necessary connections and start the thread. Upon start up, the thread will call the
plot()slot, which will emit the plot result to the widget'supdatePlot()slot. When the result is sent the plotter will quit the thread event loop, which will delete the plotter object and the thread so they don't leak.As for how fast this is, my i7 desktop plots the 200 000 points in 8 milliseconds, so it is not slow by any means.