[SOLVED] Qt5 Property Browser
-
I am in need of a property browser for my project and have made my way to the QtPropertyBrowser widget. The problem is, as far as I can tell, the property browser is written for Qt 4.x.
Therefore I am unable to build the code with my project. I really don't want to have to go through the code and fix the deprecated functions myself. Is there an up to date version of QtPropertyBrowser I can use with Qt5? Or maybe even a completely different widget I could be using?
-
Hi,
Have a look at the qttools module, IIRC you'll find QtPropertyBrowser there
Hope it helps
-
I pulled from https://git.gitorious.org/qt-solutions/qt-solutions.git
This code uses depecrated functions. In fact, it appears it hasn't been changed in 4 years.
I'm building my project with Qt5.2.1. As I type this I think i'm realizing i'm pulling from the wrong git.
-
qttools is part of Qt 5
-
Having downloaded and built qttools located "Here":https://qt.gitorious.org/qt/qttools/
I am still unable to locate QtPropertyBrowser. What am I missing?
-
The sources for it are in qttools/src/shared/qtpropertybrowser/
-
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.
-
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 ?
-
I've cloned qt-solution and built it with Qt 5.3 but I've had no special warning about deprecated function
-
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.
-
How did you try to build QtPropertyBrowser ?
-
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
-
Why don't you just follow the build instruction to create the QtPropertyBrowser library and use it in your project ?
-
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.