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
Forum Updated to NodeBB v4.3 + New Features

Direct drawing on UI

Scheduled Pinned Locked Moved Solved General and Desktop
17 Posts 3 Posters 5.4k 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