- 网上查看了很多资料,使用这个库在Qt creator 平台下挺方便,直接include进来就可以,但是要转到VS平台时遇到了问题。
一. 首先这个库的获取途径,在github上可以下载
qt官方维护的qtpropertybrowser源码。
或者 安装Qt时候选择源码安装,地址:
D:\Qt\Qt5.9.3\5.9.3\Src\qttools\src\shared\qtpropertybrowser
二. 使用方法:
直接用VS Qt 插件打开是不行的。打开是将QtPropertyBrowser的文件包含进来,而不是生成DLL项目。项目直接使用源文件得包含pri。
1.生成DLL
修改qtpropertybrowser.pro 模板改为 lib,TEMPLATE=lib 如下:
#TEMPLATE=subdirs
#CONFIG += ordered
#include(common.pri)
#qtpropertybrowser-uselib:SUBDIRS=buildlib
#SUBDIRS = buildlib
#SUBDIRS+=examples
TEMPLATE=lib
CONFIG += qt dll qtpropertybrowser-buildlib
mac:CONFIG += absolute_library_soname
#win32|mac:!wince*:!win32-msvc:!macx-xcode:CONFIG += debug_and_release build_all
include(src/qtpropertybrowser.pri)
TARGET = $$QTPROPERTYBROWSER_LIBNAME
DESTDIR = $$QTPROPERTYBROWSER_LIBDIR
INSTALL_LIBRARY_PATH = $$OUT_PWD/../../../../HmiFuncDesignerBin/bin
win32 {
DLLDESTDIR = $$INSTALL_LIBRARY_PATH
QMAKE_DISTCLEAN += $$INSTALL_LIBRARY_PATH/$${QTPROPERTYBROWSER_LIBNAME}.dll
}
#target.path = $$DESTDIR
target.path = $$INSTALL_LIBRARY_PATH
INSTALLS += target
打开成功后编译,毫无疑问,出错,没有生成DLL。解决:
在qtpropertybrowser.h 加上#define QT_QTPROPERTYBROWSER_EXPORT
编译成功;
输出dll,记得查看选择编译lib,或者编译成dll。
选择lib时,使用这个库没问题,但是选择dll时就会报链接出错
原因是qtpropertybrowser.h没有加上#define QT_QTPROPERTYBROWSER_IMPORT
。将头文件复制到Include文件夹下,打开qtpropertybrowser.h,修改后
使用如下
#include "Include/qtbuttonpropertybrowser.h"
#include "Include/qteditorfactory.h"
#include "Include/qtgroupboxpropertybrowser.h"
#include "Include/qtpropertybrowser.h"
#include "Include/qtpropertybrowserutils_p.h"
#include "Include/qtpropertymanager.h"
#include "Include/qttreepropertybrowser.h"
#include "Include/qtvariantproperty.h"
#ifdef _DEBUG
#pragma comment(lib,"QtPropertyBrowserd.lib")
#else
#pragma comment(lib,"QtPropertyBrowser.lib")
#endif
嫌麻烦的可以直接在vs界面预编译器那里直接加上QT_QTPROPERTYBROWSER_IMPORT。
2.将源文件加入项目中直接使用,包含pri
方法如下:
a.新建工程
b.导出pro
c,在导出的pro 直接include qtpropertybrowser.pri
include($$[QT_INSTALL_PREFIX]/../Src/qttools/src/shared/qtpropertybrowser/qtpropertybrowser.pri)
上面的路径是包含qt源码下的Pri。
综上,做个简单的记录,尝试下写写文字,敲敲键盘。