mgrmhc的个人主页

http://www.qtcn.org/bbs/u/123299  [收藏] [复制]

mgrmhc

  • 0

    关注

  • 2

    粉丝

  • 15

    访客

  • 等级:新手上路
  • 总积分:31
  • 男,1985-10-06

最后登录:2016-09-29

更多资料

日志

在QtCreator中使用自定义控件及在vs2010中集成qt

2011-11-10 19:44

这两天在学习制作自定义控件,使用提升法比较简章但是效果或者实用性不如插件法。在使用插件法时,遇到不少问题,几经周折,终于解决。总结如下。
  我用的是Win7系统,基于Qt4.7.4版的Qt Creator2.3.0。
  参考资料是:
  C++ GUI Qt4 编程(第二版)
  http://zhidao.baidu.com/question/194485353.html
  http://www.cnblogs.com/gamer/archive/2010/11/26/1888430.html
  http://hb.qq.com/a/20101217/001722.htm
  
  ----编写自定义控件
  按照C++ GUI Qt4 编程(第二版) 中第五章的介绍,顺利完成了自定义控件Iconeditor的编译。然而在Qt Creator中的Designer界面,始终找不到该控件。后来在tools -> Form Editor -> About QT Designer Plugin中看到Expected build key “Windows msvc release full-config” got “Windows mingw release full-config”提示。在http://zhidao.baidu.com/question/194485353.html中获悉QtSDK用MingW编译,而其附带的QtCreator则是用msvc编译的,因而在QtDesigner中可以加载,但是在QtCreator中无法加载。后来在Ubuntu下测试就没有这个问题,编译好控件后直接就能在Designer的界面中找到新插件Iconeditor了。
  解决方法用了Build the plugin with Visual Studio。
  ----在vs中集成qt
  要在vs下编译qt插件,就需要将qt集成到vs中去。关于这个,网上资料很多,如http://hb.qq.com/a/20101217/001722.htm之类,然而可能该方法讲的不够详细或者有什么其他未知问题,我在将qt集成到vs2010中的编译qt阶段遇到很多错误,不知如何解决,因而找其他方法。后来在 http://www.cnblogs.com/gamer/archive/2010/11/26/1888430.html找到了细节。
  
  首先安装vs2010
  然后安装qt Library qt-win-opensource-4.7.4-vs2008.exe
  最后是qt的vs插件qt-vs-addin-1.1.9.exe
  基本都是默认安装,一路下一步。
  
  安装完后进入开始菜单Microsoft Visual Studio 2010,Visual Studio Tools,Visual Studio Command Prompt (2010),需要注意的是,这里面必须是使用Visual Studio Command Prompt (2010),不能使用CMD的Dos窗口。
  打开后用cd C:\qt\4.7.4 进入Qt的安装目录。
  运行配置命令 configure -platform win32-msvc2010 -debug-and-release,o(选择opensource模式)回车,Y(同意license)回车。需要十几分钟。
  配置完成后运行nmake开始编译,需要三四个小时。我在执行这一步时,没报一个错。
  最后输入 nmake clean清理中间文件,大约会清除掉5G的过程文件。
  
  ----在vs环境下编译qt自定义插件
  修改C:\Qt\4.7.4\bin目录下的qtvars.bat文件。
  修改前是:
  @echo off
rem
rem This file is generated by the Qt installer
rem
echo Setting up a Qt environment...
set QTDIR=C:\Qt\4.7.4
echo -- QTDIR set to C:\Qt\4.7.4
set PATH=C:\Qt\4.7.4\bin;%PATH%
echo -- Added C:\Qt\4.7.4\bin to PATH
set QMAKESPEC=win32-msvc2008
echo -- QMAKESPEC set to "win32-msvc2008"
if not "%1"=="vsvars" goto ENDVSVARS
call "C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"
:ENDVSVARS
if not "%1"=="vsstart" goto ENDVSSTART
call "C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"
devenv /useenv
:ENDVSSTART

  修改后为:
  @echo off
rem
rem This file is generated by the Qt installer
rem
echo Setting up a Qt environment...
set QTDIR=C:\Qt\4.7.4
echo -- QTDIR set to C:\Qt\4.7.4
set PATH=C:\Qt\4.7.4\bin;%PATH%
echo -- Added C:\Qt\4.7.4\bin to PATH
set QMAKESPEC=win32-msvc2010
echo -- QMAKESPEC set to "win32-msvc2010"
if not "%1"=="vsvars" goto ENDVSVARS
call "C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\vsvars32.bat"
:ENDVSVARS
if not "%1"=="vsstart" goto ENDVSSTART
call "C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\vsvars32.bat"
devenv /useenv
:ENDVSSTART
  在开始,程序,Qt by Nokia v4.7.4 (VS2008 OpenSource)中,运行Qt 4.7.4 Command Prompt
然后进入自定义控件的工程文件目录下,运行qmake,nmake。将会在C:\Qt\4.7.4\plugins\designer中生成IconEditor.dll的插件。将其拷贝到C:\QtSDK\QtCreator\bin\designer目录下,再次打开QtCreator,就能在Designer中看到自定义的控件了。在使用该控件的工程中加入IconEditor.h,IconEditor.cpp文件即可使用。


  
  
分类:默认分类|回复:0|浏览:2453|全站可见|转载
 

Powered by phpwind v8.7 Certificate Copyright Time now is:04-28 06:42
©2005-2016 QTCN开发网 版权所有 Gzip disabled