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. Compose pointer to property of object
Forum Updated to NodeBB v4.3 + New Features

Compose pointer to property of object

Scheduled Pinned Locked Moved Solved General and Desktop
c++pointerobjectsproperties
25 Posts 3 Posters 8.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 mrjj
    #13

    hi
    Im not sure what wrong with QList since its dynamic and
    we cant have invalid pointers around ?
    else use a map
    http://doc.qt.io/qt-5/qmap.html
    QMap<int,QWebView * > map;
    QWebView *webGUI = new QWebView(this);
    ...
    map[1] =webGUI ;
    map[2] =nextwebGUI ;
    ...
    QWebView *w=map[2]; // it will stay "2"

    They wont change position as 1,2 is a key
    like map["onekey"] =webGUI ;
    but we use int as no need for string.
    so even if we remove map[1] then
    map[2] is still there.

    So maybe it works better for you ?

    1 Reply Last reply
    1
    • McLionM Offline
      McLionM Offline
      McLion
      wrote on last edited by
      #14

      Tried quickly ... and the Map is exactly what I need.
      Thanks a million! .... I'll be back ;-)

      mrjjM 1 Reply Last reply
      0
      • McLionM McLion

        Tried quickly ... and the Map is exactly what I need.
        Thanks a million! .... I'll be back ;-)

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

        @McLion
        super
        notice if you reuse the key
        map[1] =webGUI ;
        map[1] =nextwebGUI ;
        It will replace the web *.

        1 Reply Last reply
        0
        • McLionM Offline
          McLionM Offline
          McLion
          wrote on last edited by
          #16

          Thanks for the heads-up.
          I'll do some testing and experiment.

          1 Reply Last reply
          0
          • McLionM Offline
            McLionM Offline
            McLion
            wrote on last edited by
            #17

            So far, everything related to this threads question and the QMap as solution seems to work.

            I stumbled over something else while relacing the QwebView from the Designer by my 'on-demand' created one:
            I can not load an url, it crashes with sig11.

            I get the following connect error on bootup:

            QMetaObject::connectSlotsByName: No matching signal for on_webGUI_loadFinished(bool)
            

            which I dont understand and may be the cause.
            I have connected:

            connect(webGUI, SIGNAL(loadFinished(bool)), this, SLOT(on_webGUI_loadFinished(bool)));
            

            and in *.h as private slot:

            void on_webGUI_loadFinished(bool arg1);
            

            This worked before, with the QWebView from the Designer.
            Any idea? Thanks.

            1 Reply Last reply
            0
            • mrjjM Offline
              mrjjM Offline
              mrjj
              Lifetime Qt Champion
              wrote on last edited by
              #18

              @McLion said:

              no matching signal for on_webGUI_loadFinished(bool)

              Hi
              this warning comes as you name slot on_XXX
              This will trigger Qt auto connect feature so when you use
              a concrete connect you should rename it so it dont
              start with on__
              (right click it- refactor->rename)

              also please do
              qDebug() << "loadfin:" << connect(webGUI, SIGNAL(loadFinixxxx

              to see if it returns true; ( as in , it can connect)

              1 Reply Last reply
              1
              • McLionM Offline
                McLionM Offline
                McLion
                wrote on last edited by
                #19

                I wasn't aware that using on_ in the name will trigger any functionality!
                Refactoring solved this problem - Thanks !

                However, the signal 11 crash when trying to load an url seems to have some other cause .... I'm searching ;-)

                1 Reply Last reply
                0
                • jsulmJ Offline
                  jsulmJ Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on last edited by
                  #20

                  You're most probably dereferencing a null pointer. Signal 11 means SIGSEGV (segmentation error).

                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                  McLionM 1 Reply Last reply
                  0
                  • jsulmJ jsulm

                    You're most probably dereferencing a null pointer. Signal 11 means SIGSEGV (segmentation error).

                    McLionM Offline
                    McLionM Offline
                    McLion
                    wrote on last edited by
                    #21

                    @jsulm
                    Yes - Thanks . Problem loacted, but not yet solved:

                    void QTGUI_MainWindow::populateJavaScriptWindowObject()
                    {
                      QWebView * webGUI = qobject_cast<QWebView *>(sender());
                      webGUI->page()->mainFrame()->addToJavaScriptWindowObject("NativeBridge", this);
                    }
                    

                    The sender is the JS and not the QWebView and so I do not get the pointer to the QWebView that I need. Instead, the pointer is 0x0 and then - of course - the addToJ... crashes.

                    Any idea how I get the pointer to the QWebView from which the JS is sending?
                    Thanks

                    1 Reply Last reply
                    0
                    • jsulmJ Offline
                      jsulmJ Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on last edited by
                      #22

                      What is JS?

                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                      McLionM 1 Reply Last reply
                      0
                      • jsulmJ jsulm

                        What is JS?

                        McLionM Offline
                        McLionM Offline
                        McLion
                        wrote on last edited by
                        #23

                        @jsulm
                        JavaScript (in/from QWebKit ... more precise page()->mainFrame().

                        1 Reply Last reply
                        0
                        • McLionM Offline
                          McLionM Offline
                          McLion
                          wrote on last edited by
                          #24

                          I posted this as a separate question in the WebKit group.

                          1 Reply Last reply
                          0
                          • McLionM Offline
                            McLionM Offline
                            McLion
                            wrote on last edited by
                            #25

                            Got it solved :-)

                            QWebFrame * webGUIframe = qobject_cast<QWebFrame >(sender());
                            QWebView * webGUI = (QWebView
                            )(webGUIframe->parent())->parent();
                            webGUI->page()->mainFrame()->addToJavaScriptWindowObject("NativeBridge", this);

                            1 Reply Last reply
                            0

                            • Login

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