vs2015安装qt好qt5后vs2010中没有

使用qt5&VS2010设计插件的一般方法
我的图书馆
使用qt5&VS2010设计插件的一般方法
环境: QT5.1 VS2010为了方便VS中调试,需要将主程序和plugin的程序放在同一个解决方案中,否则无法单步调试。步骤:1、建立plugin工程,该工程为qtlibrary工程,工程中包括一个interface.h的头文件,该头文件定义一个接口类,可以定义所以的纯虚函数,可以没有构造函数,但是为了释放内存,建议有一个虚的析构函数。然后根据要求定义各个成员函数【虚函数】2、定义完所有的函数后需要用Q_DECLARE_INTERFACE宏定义来定义接口,Q_DECLARE_INTERFACE(testinterface , "mxq.testlib.testinterface/1.0")第一个参数为类名,第二个参数为标示码,自己定义。3、在创建工程的时候会自动生成一个.h文件为libplugin_global.h【如果libplugin为工程名称】,在libplugin.h文件中设计插件的类,该类继承QObject和interface类。4、libplugin类定义的时候需要注意添加宏:Q_OBJECT,Q_PLUGIN_METADATA,Q_INTERFACES三个宏。其用户可以参考手册。5、实现类成员函数。编译ok。源码如下:libplugin_global.h 是自动生成的,不需要进行改动,不做说明testinterface.h源码========================》#ifndef TESTINTERFACE_H#define TESTINTERFACE_H#include &QtPlugin&#include &QObject&#include &QString&class testinterface:public QObject{ Q_OBJECTpublic: virtual ~testinterface(){}; virtual QString getName() = 0;signals: void reqTest(quint16 value);};Q_DECLARE_INTERFACE(testinterface , "mxq.testlib.testinterface/1.0")#endiflibplugin.h源码========================》#ifndef LIBPLUGIN_H#define LIBPLUGIN_H#include &QObject&#include &QTimer&#include "testinterface.h"#include "libplugin_global.h"class LIBPLUGIN_EXPORT libplugin: public QObject , public testinterface{ Q_OBJECT Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDummyPlugin" FILE "mxqtest.json") Q_INTERFACES(testinterface)public: libplugin(); ~libplugin(); virtual QString getName();//signals: //void reqTimeOut(); //void reqTest(quint16 value);public slots: void respTimeOut();private: QTimer *pT quint16 timeC};#endif // LIBPLUGIN_Hlibplugin.c源码========================》#include "libplugin.h"#include &QtDebug&#include &QString&#include &QtPlugin&libplugin::libplugin(){ pTimer = NULL; pTimer = new QTimer(); QObject::connect(pTimer , &QTimer::timeout , this , &libplugin::respTimeOut); pTimer-&start(5000); timeCount = 0;}libplugin::~libplugin(){ if (pTimer) { pTimer-&deleteLater(); pTimer = NULL; }}QString libplugin::getName(){ qDebug()&& "get name function input :" ; qDebug()&&"plugin name is \"libplugin\""; return "libplugin";}void libplugin::respTimeOut(){ timeCount++; emit this-&reqTest(timeCount);}创建测试主工程,该工程需要包含接口头文件interface.h。调用QPluginLoader类中的函数加载.dll文件,然后使用qobject_cast将工程强制转换。后期使用就和一般的对象一样使用。testclass.h源码============================》#ifndef TESTCLASS_H#define TESTCLASS_H#include &QObject&class TestClass : public QObject{ Q_OBJECTpublic: TestClass(QObject *parent=0); ~TestClass();public slots: void respValue(quint16 value);private: };#endif // TESTCLASS_Htestclass.c源码============================》#include "testclass.h"#include &QtDebug&TestClass::TestClass(QObject *parent) : QObject(parent){}TestClass::~TestClass(){}void TestClass::respValue( quint16 value ){ qDebug()&&"value = "&&}#include &QtCore/QCoreApplication&#include &QLibrary&#include &QObject&#include &QPluginLoader&#include &QDir&#include &QtDebug&#include "testinterface.h"#include "testclass.h"main.c源码=========================================》int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); //QDir pluginsDir(QDir(a.applicationDirPath()) // .canonicalPath() // .append(QDir::separator()) // .append("plugins")); //foreach (QString fileName, pluginsDir.entryList(QDir::Files))& //{ // qDebug()&&fileN // qDebug()&&pluginsDir.absoluteFilePath(fileName); //} TestClass *test = new TestClass(); QPluginLoader *pPlugin = new QPluginLoader("libplugin.dll"); qDebug()&&pPlugin-&errorString(); if (pPlugin-&load()) { qDebug()&&"load ok!"; } QObject *pObj = pPlugin-&instance(); if (pObj) { testinterface * pinterface = qobject_cast&testinterface *&(pObj); QObject::connect(pinterface , &testinterface::reqTest,test , &TestClass::respValue); qDebug()&&pinterface-&getName(); } return a.exec();}以上为本人简单的测试程序,加载和调用插件没有问题,但是别的程序bug不考虑。仅供参考。。。。&&
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢11400人阅读
1、下载QT5
http://qt-project.org/downloads
3、设置环境变量
4、安装 &vs 插件
5、在 VS2010 中打开 &QT5 中的示例&
之后自动生成 &examples.sln ,并自动编译,编译时间较长,中间可能会没有影响。
关闭 VS 后,再编译一次即可。
在VS中新建一个
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:46568次
排名:千里之外
原创:17篇
(1)(1)(2)(2)(5)(4)(2)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'2013年8月 移动平台大版内专家分月排行榜第二2013年4月 移动平台大版内专家分月排行榜第二
2013年5月 移动平台大版内专家分月排行榜第三
2013年8月 移动平台大版内专家分月排行榜第二2013年4月 移动平台大版内专家分月排行榜第二
2013年5月 移动平台大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。下次自动登录
现在的位置:
1、安装vs2010;
2、下载Qt 5.2.0 for Windows 32-bit (VS 2010) 和 Visual Studio Add-in 1.2.2 for Qt5
3、安装Qt 5.2.0 for Windows 32-bit,路径随便选(不建议包含中文);
4、安装 Visual Studio Add-in 1.2.2 for Qt5,默认安装;
5、在系统环境变量中添加QTDIR,值为第三步中安装的路径+“5.2.0\msvc2010”;
      在系统环境变量中添加QtANGLE,值为第三步中安装的路径+“5.2.0\msvc2010\include\QtANGLE”;
      注意:后边添加的是qt默认安装的包含vs2010编译qt的路径。
                 如安装路径为C:\Qt\Qt5.2.0,则环境变量值QTDIR应为 C:\Qt\Qt5.2.0\5.2.0\msvc2010;QtANGLE为C:\Qt\Qt5.2.0\5.2.0\msvc2010\include\QtANGLE
6、打开vs2010,菜单栏会多一项QT5,点击QT5下的qt option,把第5步添加的环境变量加进去。
7、新建qt工程,一路默认,编译,OK。
ubuntu 下安装在运行时会提醒 cannot find -lGL 
只需在命令行下输入下面(安装GL)
sudo apt-get install libglu1-mesa-dev -y
【上篇】【下篇】
您可能还会对这些文章感兴趣!
百度站内搜索
同分类最新文章windows下Qt5安装使用
闲话少说,直接绕过自己走的弯路,向大家分享安装使用经验。
对于已安装了Qt4的朋友,建议保留,再装个Qt5应该没有影响,我现在装的是QtSDK1.2.1(Qt4.8) +
用VS2010做编译器windbg做调试器的Qt5。有俩Qt Creater都能用。俩版本的Qt也都能用。
对于没有安VS的同学,建议直接安Windows
SDK(论坛里有大牛用这种方法成功),因为安了VS2010后安Qt5会提示没有调试器,还要安装windbg。
说明一下,安装VS2010不是说放弃Creater,用VS,而是要用VS的编译器,之前Creater带的mingw编译器不能编译Qt5了,好像是因为Qt5用的C++10吧,mingw不支持这个。写代码还是可以再Creater下,只是把编译器设置为VS的。
下面介绍自己坎坷经历中遇到的问题与解决办法:
1、先下载安装了VS2010,再下载安装Qt5.0,在下载安装VS2010 Add In(后面俩都在下载),打开Qt5的Creater编译时提示没有调试器?
&&&解决:下载并安装windbg。在Creater里点击工具-&选项
看见下面的调试器没,点右边的管理,会自动搜索到windbg,然后选中确定就行了。
出现未选择编译器也是在这里设置的,但是要已经安装了编译器才行(mingw不行,前面说了)。
2、在VS2010中使用Qt,编译时报错:
Unable&to&find&a&Qt&build!
To&solve&the&prolem&specify&a&Qt&build.
这是因为没有在VS2010中设置Qt的环境变量,解决方法:
在VS2010主菜单里有Qt5(如果你成功安装Qt5.Qt5 add
in的话),点击,再点击最下面的Qt-options弹出选项框,把Qt的路径加进去:
3、尝试用Qt5编译Qt4的工程。(或者你在用Qt5时依然是一颗Qt4的心)你会遇到下面的问题:
错误:C1083:&无法打开包括文件:“QApplication”:&No&such&file&or&directory
错误:C1083:&无法打开包括文件:“QMainWindow”:&No&such&file&or&directory
出现原因:Qt5里不再用QtGui模块,而是使用QtWidgets模块。解决方法:
在.pro里加上QT += widgets
然后把所有的
再编译如果还出现这样那样的错误,也很正常,因为我遇见了意大堆。最后总结:
不要想着安了Qt5,就直接用他来继续之前Qt4写的工程,不如还是用Qt4吧,有新工程从头开始可以使用Qt5。虽然digia官方说完美支持Qt4,真没发现真没完美的。
慢慢回忆好像就这几个砍儿吧,希望对大家有帮助。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 vs2015安装qt插件 的文章

 

随机推荐