使用 qt-solutions 组件的一些问题

最近在项目中需要用到一些属性框, 因为整个程序是用qt写的, 所以在aol.com(为啥不是google, 你懂的)一番后, 锁定了 qt-solutions 这个开源组件.
本以为一切都很顺利, 但还是发生了一些问题.

因为我只想用其中的QtPropertyBrowser这个组件, 所以就只把这部分的源码添加到了项目中, 但一编译就是一堆的错误:

...........
1>qtvariantproperty.obj : error LNK2001: 无法解析的外部符号 "public: static struct QMetaObject const QtRectPropertyManager::staticMetaObject" ([email protected]@@[email protected]@B)
1>qtvariantproperty.obj : error LNK2001: 无法解析的外部符号 "public: static struct QMetaObject const QtRectFPropertyManager::staticMetaObject" ([email protected]@@[email protected]@B)
1>qtvariantproperty.obj : error LNK2001: 无法解析的外部符号 "public: static struct QMetaObject const QtColorPropertyManager::staticMetaObject" ([email protected]@@[email protected]@B)
1>qtvariantproperty.obj : error LNK2001: 无法解析的外部符号 "public: static struct QMetaObject const QtSizePolicyPropertyManager::staticMetaObject" ([email protected]@@[email protected]@B)
1>qtvariantproperty.obj : error LNK2001: 无法解析的外部符号 "public: static struct QMetaObject const QtFontPropertyManager::staticMetaObject" ([email protected]@@[email protected]@B)
1>qtvariantproperty.obj : error LNK2001: 无法解析的外部符号 "public: static struct QMetaObject const QtCursorPropertyManager::staticMetaObject" ([email protected]@@[email protected]@B)
1>qtvariantproperty.obj : error LNK2001: 无法解析的外部符号 "public: static struct QMetaObject const QtFlagPropertyManager::staticMetaObject" ([email protected]@@[email protected]@B)
1>D:\Other\proj\earthmaker\Win32\Debug\EarthMaker.exe : fatal error LNK1120: 161 个无法解析的外部命令

看着应该是很简单的链接错误, 但因为我是把源码直接添加到项目中的, 而上面这个提示一般都是在引入三方库时才会出现的, 所以依然是到aol.com上搜索.

所有的搜索结果总结一下主要是下面几个原因导致的:

  1. 没找到你要链接的库 (这种很简单, 指定一下库的路径, 一般都OK)
  2. 没生成或没找到moc_*.cpp文件 (也比较简单, 在cpp的末尾添加上 #include "moc_xxx.cpp", 你别说 qtpropertybrowser 这个库就是这么干的
  3. 文件是unicode的, 需要随便修改一下, 再保存就ok了

遗憾的是, 以上几种我试过之后都没解决我的问题, 在困扰了我几天之后, 不经意的瞎点中发现了这个:

而一般cpp文件的常规应该是这样:

所以果断把qtpropertybrowser中所有的cpp的属性页都修改成 "C/C++编译器", 编译, 通过了!

visual studio和所有windows家的东西都是这样, 总是在时不时的给你来点小惊喜.......我快够了...

原文地址:http://segmentfault.com/a/1190000002498274

我有个文件还是 用的自定义生成工具

所以当你遇到这个问题的时候 确保 头文件和cpp文件都已经改完了。

真tm 操蛋 我也快够了

时间: 2024-10-17 03:31:00

使用 qt-solutions 组件的一些问题的相关文章

QT开发(九)——QT单元组件

QT开发(九)--QT单元组件 QT有三种单元组件,分别为列表单元组件QListWidget.树形单元组件QTreeWidget.表格单元组件QTableWidget. 一.QListWidget列表单元 1.QListWidget组件简介 QListWidget列表单元组件继承自QListView,是基于单元的列表组件.QListWidget可以显示一个清单,清单中的每个项目是QListWidgetItem的一个实例,每个项目可以通过QListWidgetItem来操作.可以通过QListWi

QT开发(七)——QT按钮组件

QT开发(七)--QT按钮组件 QT中有六种按钮组件,分别是按压按钮QPushButton.工具按钮QToolButton.单选按钮QRadioButton.多选按钮QCheckBox.命令链接按钮QCommandLinkButton.按钮盒QButtonBox. 一.QPushButton组件 1.QPushButton组件简介 QPushButton组件用于接受用户点击事件,能够显示提示字符串,是功能性组件,需要父组件作为容器,能够在父组件中进行定位,用于执行命令或触发事件. QPushBu

Qt Quick 组件和动态创建的对象具体的解释

在<Qt Quick 事件处理之信号与槽>一文中介绍自己定义信号时,举了一个简单的样例.定义了一个颜色选择组件,当用户在组建内点击鼠标时,该组件会发出一个携带颜色值的信号,当时我使用 Connections 对象连接到组件的 colorPicked 信号,改变文本的颜色. 当时用到的 Component . Loader 两个特性,一直没来得及介绍,可能非常多人都还在雾里看花呢. 这次呢.我们就来仔细致细地把他们讲清楚. 版权全部 foruok ,转载请注明出处:http://blog.csd

QT开发(六)——QT容器组件

QT开发(六)--QT容器组件 QT中有九种容器组件,分别是组合框QGroupBox.滚动区QScrollArea.工具箱QToolBox.选项卡QTabWidget.控件栈QWidgetStack.框架QFrame.组件QWidget.MDI窗口显示区QMdiArea.停靠窗口QDockWidget. 一.QGroupBox分组框 1.QGroupBox组件简介 QGroupBox为构建分组框提供了支持.分组框通常带有一个边框和一个标题栏,作为容器部件来使用,在其中可以布置各种窗口部件.分组框

Qt on Android: Qt Quick 组件与对象动态创建详解

在<Qt on Android: Qt Quick 事件处理之信号与槽>一文中介绍自定义信号时,举了一个简单的例子,定义了一个颜色选择组件,当用户在组建内点击鼠标时,该组件会发出一个携带颜色值的信号,当时我使用 Connections 对象连接到组件的 colorPicked 信号,改变文本的颜色. 当时用到的 Component . Loader 两个特性,一直没来得及介绍,可能很多人都还在雾里看花呢.这次呢,我们就来仔仔细细地把他们讲清楚. 请给我的参赛文章<Qt on Androi

Qt获取多边形(QGraphicsPolygonItem)或Qt图形组件与直线(QLineF)的交点 - 推酷

有时需要获取直线与各种图形的交点,包括多边形和各种Qt图形框. 例如上图中,要想使连接线始终在多边形的边上,且能指向多边形中心,那么我们就要获取连线AB与多边形的交点. 1.多边形(QGraphicsPolygonItem)与直线(QLineF)的交点 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 //已知点和多边形//A.B点可通过多边形的boundingRect().width()/2获取; QPointF A; QPointF B; QGraphics

QT的组件布局

在QT的IDE下,编写一个自定义布局. 1 #include<QApplication> 2 #include<QWidget> 3 #include<QSpinBox> 4 #include<QSlider> 5 #include<QHBoxLayout> 6 7 int main (int argc,char *argv[]) 8 { 9 QApplication app(argc, argv); 10 QWidget * window =

Qt容器组件(一)之QGroupBox、QScrollArea、QToolBox、QTabWidget

QT中有九种容器组件,分别是组合框QGroupBox.滚动区QScrollArea.工具箱QToolBox.选项卡QTabWidget.控件栈QWidgetStack.框架QFrame.组件QWidget.MDI窗口显示区QMdiArea.停靠窗口QDockWidget.本博主要介绍:组合框QGroupBox.滚动区QScrollArea.工具箱QToolBox.选项卡QTabWidget 一.QGroupBox分组框 QGroupBox为构建分组框提供了支持.分组框通常带有一个边框和一个标题栏

与 QWidget 有关的 Qt 可视化组件的继承关系图

Qt学习之路2---窗口组件及窗口类型

窗口组件: 图形用户界面由不同的窗口和窗口组件构成: Qt以组件对象的方式,构建图形用户界面. 组件的类型包括: ---容器类(父组件):用于包含其他的界面组件 ---功能类(子组件):用于实现特定的交互功能 Qt中没有用父组件的顶级组件叫做窗口. Qwidget 继承自QObject和QPaintDevice -Qwidget 能够绘制自己和处理用户的输入,也是Qt中所以窗口组件类的父类 -Qwidget类对象作为父组件或顶级组件使用 -Qt中的每一个窗口组件都是Qwidget -Qwidge