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. [SOLVED] Qt5 Property Browser
Forum Updated to NodeBB v4.3 + New Features

[SOLVED] Qt5 Property Browser

Scheduled Pinned Locked Moved General and Desktop
24 Posts 3 Posters 21.3k Views 1 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.
  • A Offline
    A Offline
    ASxa86
    wrote on last edited by
    #6

    Having downloaded and built qttools located "Here":https://qt.gitorious.org/qt/qttools/

    I am still unable to locate QtPropertyBrowser. What am I missing?

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #7

      The sources for it are in qttools/src/shared/qtpropertybrowser/

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • A Offline
        A Offline
        ASxa86
        wrote on last edited by
        #8

        Thank you for all your help so far. Next question. It would appear this code is meant for static linkage. So I'm just throwing the files into my Visual Studio project using CMake.

        I call QT5_WRAP_CPP() and add the generated moc files directory to my include_directories().

        The problem is, when I build, the moc files are missing class definitions.

        Most if not all of the moc files are missing class definitions for the privately declared classes. Is there something i'm missing perhaps?

        Another question, the qtpropertybrowser code includes the moc files at the end of header files. Since I'm using Qt5 do I even need to do this anymore?

        I haven't had to include moc files for any of my custom widgets and classes.

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #9

          Rethinking about it, qt-solution's QtPropertyBrowser can be built with Qt 5 without any problem and directly into a lib that you can re-use. So why not use it ?

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • A Offline
            A Offline
            ASxa86
            wrote on last edited by
            #10

            I think I tried that earlier and had issues. I don't remember what though. I'll see what I can do when I get home.

            1 Reply Last reply
            0
            • A Offline
              A Offline
              ASxa86
              wrote on last edited by
              #11

              Oh, jeez. In my earlier post i stated it seemed like the qtpropertybrowser from qt-solutions was using deprecated functions and i didn't want to have to rewrite it. I'll try again.

              1 Reply Last reply
              0
              • SGaistS Offline
                SGaistS Offline
                SGaist
                Lifetime Qt Champion
                wrote on last edited by
                #12

                I've cloned qt-solution and built it with Qt 5.3 but I've had no special warning about deprecated function

                Interested in AI ? www.idiap.ch
                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  ASxa86
                  wrote on last edited by
                  #13

                  I'm giving it a try now. I'm building with VS2012 in combination with CMake.

                  1 Reply Last reply
                  0
                  • A Offline
                    A Offline
                    ASxa86
                    wrote on last edited by
                    #14

                    Attempting to build the code with my project.

                    qttreepropertybrowser.cpp 486: setMovable is not a member of QHeaderView

                    This is just one example.

                    qtvariantproperty.cpp 1652: 'qVariantValue' undeclared identifier

                    is another.

                    I'm also getting the errors that *_moc.cpp have undefined types because they are unable to see the definitions of private classes.

                    I will try and build with qt5 but when I linked to the qtpropertybrowser.dll for my project. QtDesigner wouldn't load my CustomWidget.dll. In fact, QtDesigner wouldn't even run because of some kind of dll load order with Qt5Widgets.dll.

                    I will report back.

                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #15

                      How did you try to build QtPropertyBrowser ?

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      0
                      • A Offline
                        A Offline
                        ASxa86
                        wrote on last edited by
                        #16

                        In cmake, I added the *h/*cpp files to my list of source files.

                        I called QT5_WRAP_CPP on the qtpropertybrowser header files.
                        I added the generated moc files to add_library()

                        Example:
                        @
                        set(TARGET_H
                        qtpropertybrowser.h
                        qttreepropertybrowser.h
                        )

                        set(TARGET_SRC
                        qtpropertybrowser.cpp
                        qtpropertybrowser.cpp
                        )

                        QT5_WRAP_CPP(QTPROPERTYBROWSER_MOC ${TARGET_H})

                        add_library(${PROJECT_NAME} SHARED ${TARGET_SRC} ${QTPROPERTYBROWSER_MOC})
                        @

                        This is a sample of what i'm doing in my CMakelist.txt. Then I proceed to build with Visual Studio 2012

                        1 Reply Last reply
                        0
                        • SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #17

                          Why don't you just follow the build instruction to create the QtPropertyBrowser library and use it in your project ?

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          1 Reply Last reply
                          0
                          • A Offline
                            A Offline
                            ASxa86
                            wrote on last edited by
                            #18

                            I want to say I've tried that and had issues too. Though I don't remember what. I will give it another try once I get a chance.

                            I'm pretty sure I can run:

                            @
                            conifure -library
                            qmake
                            nmake
                            @

                            1 Reply Last reply
                            0
                            • A Offline
                              A Offline
                              ASxa86
                              wrote on last edited by
                              #19

                              Success! Built and linked to the DLL without any issues. Created a custom widget interface and was able to pull it up in QtDesigner.

                              I think my original issue with doing it this way was I didn't define QT_QTPROPERTYBROWSER_IMPORT. Which meant my dynamic widget was inheriting from a static class.

                              Once again, thank you SGalst for taking time to help.

                              1 Reply Last reply
                              0
                              • A Offline
                                A Offline
                                ASxa86
                                wrote on last edited by
                                #20

                                edit: solved

                                1 Reply Last reply
                                0
                                • SGaistS Offline
                                  SGaistS Offline
                                  SGaist
                                  Lifetime Qt Champion
                                  wrote on last edited by
                                  #21

                                  You're welcome !

                                  If it's now working for you, please update the thread title prepending [solved] so other forum users may know a solution has been found :)

                                  Interested in AI ? www.idiap.ch
                                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                  1 Reply Last reply
                                  0
                                  • L Offline
                                    L Offline
                                    lucatersi
                                    wrote on last edited by
                                    #22

                                    Hi,
                                    could you please summarize what you have done to solve the issue? With QT4 I managed to get a cmake version of qtpropertybrowser and to include it in my project, I cannot migrate to QT5 though...
                                    Any help?
                                    Thanks

                                    EDIT: how can include qtpropertybrowser in my CMakeLists.txt?

                                    1 Reply Last reply
                                    0
                                    • A Offline
                                      A Offline
                                      ASxa86
                                      wrote on last edited by
                                      #23

                                      First off, I was unsuccessful at including the qtpropertybrowser source into my CMake project and building. Just wouldn't work. So what I did was built QtPropertyBrowser as a stand alone dynamic library and then linked that into my CMake project.

                                      Here's what I did step by step successfully on 3 different PCs.
                                      Note: I'm running VS2012 and Qt5.2.1

                                      1. Install Qt to C:\Qt
                                      2. Set C:\Qt\Qt5.2.1\5.2.1\msvc2012_64_opengl\bin to your PATH
                                      3. Download QtSolutions to C:\QtSolutions
                                      4. Run the Native x64 command prompt (VS2012) and cd to C:\QtSolutions\QtProperyBrowser
                                      5. Follow the given directions in QtPropertyBrowser
                                        @
                                        configure -library
                                        qmake
                                        nmake
                                        @

                                      This will build the dynamic library for you.

                                      1. From here I wrote a simple Find QtPropertyBrowser for my CMake project.
                                      2. Link to QtPropertyBrowser in CMake and ensure the import definition is defined (found in header file)
                                        @
                                        add_definitions(-DQT_QTPROPERTYBROWSER_IMPORT)
                                        target_link_libraries(${PROJECT_NAME} ${QTPROPERTYBROWSER_LIBRARIES})
                                        @

                                      This was about all I did as far as I can remember. Hope this helps.

                                      1 Reply Last reply
                                      0
                                      • L Offline
                                        L Offline
                                        lucatersi
                                        wrote on last edited by
                                        #24

                                        Thanks you a lot, I finally managed to compile QtPropertyBrowser with Qt5 and cmake tweaking some functions in the code and the cmake configuration files found here: https://github.com/commontk/QtPropertyBrowser.
                                        The libraries were successfully linked into my project.

                                        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