Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Direct drawing on UI
Qt 6.11 is out! See what's new in the release blog

Direct drawing on UI

Scheduled Pinned Locked Moved Solved General and Desktop
17 Posts 3 Posters 10.0k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • mrjjM Offline
    mrjjM Offline
    mrjj
    Lifetime Qt Champion
    wrote on last edited by
    #8

    hi
    why cant RGBData just live in VideoFrameWidget ?
    so you dont need to give it from main. ?

    but else u just use functions to give it to the widget.

    MiklM 1 Reply Last reply
    0
    • mrjjM mrjj

      hi
      why cant RGBData just live in VideoFrameWidget ?
      so you dont need to give it from main. ?

      but else u just use functions to give it to the widget.

      MiklM Offline
      MiklM Offline
      Mikl
      wrote on last edited by
      #9

      @mrjj

      It can, but i found it not logic. it is coming from the camera.
      It was simplification of main. In a reality it will be a loop.

      If i understood you correctly, you propose to do it like this:

      main()
      {
       char* RGBData;//data from camera
       VideoFrameWidget videoFrame = new VideoFrameWidget();
       CameraDevice videoSource = new CameraDevice ();
      
       for(;;)
       {
        RGBData = videoSource->getFrame();
        videoFrame->setFrame(RGBData);
        videoFrame->update();
       }
      }
      
      class VideoFrameWidget : public QWidget
      {
          Q_OBJECT
      public:
          VideoFrameWidget(QWidget *parent);
          virtual void paintEvent(QPaintEvent *);
          void setFrame(char* newFrameData);
      private:
       char* frameData;
      };
      
      void VideoFrameWidget::paintEvent(QPaintEvent*)
      {
      //use opengl to draw image from frameData 
      }
      
       void VideoFrameWidget::setFrame(char* newFrameData)
      {
       frameData = newFrameData;
      }
      
      1 Reply Last reply
      0
      • mrjjM Offline
        mrjjM Offline
        mrjj
        Lifetime Qt Champion
        wrote on last edited by
        #10

        yes exactly and then u can use
        char* frameData;
        in paintEvent

        MiklM 1 Reply Last reply
        0
        • mrjjM mrjj

          yes exactly and then u can use
          char* frameData;
          in paintEvent

          MiklM Offline
          MiklM Offline
          Mikl
          wrote on last edited by
          #11

          @mrjj

          But i still have a question of realization of paintEvent :)

          Can you give me a hand, please

          mrjjM 1 Reply Last reply
          0
          • MiklM Mikl

            @mrjj

            But i still have a question of realization of paintEvent :)

            Can you give me a hand, please

            mrjjM Offline
            mrjjM Offline
            mrjj
            Lifetime Qt Champion
            wrote on last edited by
            #12

            @Mikl
            hii . super :)
            im not good with opengl so better ask @Wieland
            or anyone using it often. :)

            1 Reply Last reply
            0
            • MiklM Offline
              MiklM Offline
              Mikl
              wrote on last edited by
              #13

              @mrjj
              Thank you for helping

              @Wieland
              Can i ask for help with my problem please?
              I need to display raw RGB on a screen in a fastest way.

              mrjjM 1 Reply Last reply
              0
              • MiklM Mikl

                @mrjj
                Thank you for helping

                @Wieland
                Can i ask for help with my problem please?
                I need to display raw RGB on a screen in a fastest way.

                mrjjM Offline
                mrjjM Offline
                mrjj
                Lifetime Qt Champion
                wrote on last edited by
                #14

                @Mikl
                note, this is user run forum.
                so he might first be on in the evening.
                :)

                MiklM 1 Reply Last reply
                0
                • mrjjM mrjj

                  @Mikl
                  note, this is user run forum.
                  so he might first be on in the evening.
                  :)

                  MiklM Offline
                  MiklM Offline
                  Mikl
                  wrote on last edited by Mikl
                  #15

                  @mrjj
                  Ok. Thanks.

                  For me it is looks strange, but reading this example
                  http://doc.qt.io/qt-5/qtopengl-2dpainting-example.html
                  i found, what the only different is using GLWidget as base class.
                  All painting is done by the same QPainter.

                  Am i right?

                  If it is so, task can be really simple.
                  Maybe you know the fastest way to paint from RGB raw data on widget: draw line by line, pixel by pixel, memcopy,....

                  mrjjM ? 2 Replies Last reply
                  0
                  • MiklM Mikl

                    @mrjj
                    Ok. Thanks.

                    For me it is looks strange, but reading this example
                    http://doc.qt.io/qt-5/qtopengl-2dpainting-example.html
                    i found, what the only different is using GLWidget as base class.
                    All painting is done by the same QPainter.

                    Am i right?

                    If it is so, task can be really simple.
                    Maybe you know the fastest way to paint from RGB raw data on widget: draw line by line, pixel by pixel, memcopy,....

                    mrjjM Offline
                    mrjjM Offline
                    mrjj
                    Lifetime Qt Champion
                    wrote on last edited by
                    #16

                    @Mikl
                    Yes as far as i know its VERY similar to
                    normal widget drawing even when opengl.
                    (when 2d)

                    well, the sample i have seen , used something like
                    uchar* data = getDataFromSomewhere();
                    QImage img(data, width, height, QImage::Format_ARGB32);
                    and then convert ot pixmap and draw.
                    or directly into pixmap with
                    http://doc.qt.io/qt-4.8/qpixmap.html#loadFromData

                    1 Reply Last reply
                    0
                    • MiklM Mikl

                      @mrjj
                      Ok. Thanks.

                      For me it is looks strange, but reading this example
                      http://doc.qt.io/qt-5/qtopengl-2dpainting-example.html
                      i found, what the only different is using GLWidget as base class.
                      All painting is done by the same QPainter.

                      Am i right?

                      If it is so, task can be really simple.
                      Maybe you know the fastest way to paint from RGB raw data on widget: draw line by line, pixel by pixel, memcopy,....

                      ? Offline
                      ? Offline
                      A Former User
                      wrote on last edited by
                      #17

                      @Mikl said:

                      For me it is looks strange, but reading this example
                      http://doc.qt.io/qt-5/qtopengl-2dpainting-example.html
                      i found, what the only different is using GLWidget as base class.
                      All painting is done by the same QPainter.

                      Am i right?

                      Hi! Yes, getting 2D hardware acceleration for QPainter is really easy :)

                      1 Reply Last reply
                      2

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved