Qt自定义控件的开发和使用

1.环境

1.vs2010

2.先安装Qt5.4.0(qt-opensource-windows-x86-msvc2010_opengl-5.4.0.exe)

3.再安装qt-vs-addin-1.2.4-opensource.exe

2.无UI的自定义控件及使用

2.1新建一个Qt Designer Plugin工程

工程名字为keyboard,类名Keyboard,插件类名:KeyboardPlugin


2.2 修改keyboardplugin.cpp

 将

QString KeyboardPlugin::includeFile() const

{

         return "keyboard.h";

}

改为

QString KeyboardPlugin::includeFile() const

{

         return "../keyboard/keyboard.h";

}

否则在使用此插件时,会报错:找不到头文件keyboard.h


2.3将生成的dll拷贝至qt安装目录下的..\ designer下

必须是Release目录下

2.4 为了简便,设置工程->Properties->PostBuild->Command Line

copy "$(TargetDir)$(TargetName).dll"D:\Install\Qt\Qt5.4.0\5.4\msvc2010_opengl\plugins\designer

2.5重新打开Qt Designer,检验插件是否生成


点击帮助->关于插件,如下图所示。


左下角,显示如下如所示。



3.使用

3.1新建测试工程

打开vs2010,新建一个工程Qt Application,名字为testPlugin,继承自QMainWindow。此工程用来测试自定义控件。


3.2 测试工程缺少lib库

解决方法

     右键点击测试工程,选择Propertities->VC++Directions->Library Directories,如下图说是。

debug添加:D:\Practise\QT\vs2010\qt_learn1\Win32\Debug

release添加:D:\Practise\QT\vs2010\qt_learn1\Win32\Release


3.3 缺少宏QDESIGNER_WIDGET_EXPORT

解决办法

     在头文件keyboard.h的类声明前加入宏:QDESIGNER_WIDGET_EXPORT

     加入头文件#include <QtDesigner/QDesignerExportWidget>,伪代码如下

...

#include <QtDesigner/QDesignerExportWidget>

...

 

class QSignalMapper;

class QDESIGNER_WIDGET_EXPORTKeyboard : publicQWidget

{

         ......

}


3. 有UI的自定义控件及使用

3.1删除keyboard.h和keyboard.cpp

在“2. 无UI的自定义控件及使用”的基础上,删除这两个文件。

3.2 添加Qt5GuiClass类Keyboard

    右键keyboard工程->Add->Class,选择Qt5GuiClass,如下图所示。



3.3使用

3.3.1 不认识头文件ui_keyboard.h

解决方法

#include "ui_keyboard.h"

为:

#include "../keyboard/GeneratedFiles/ui_keyboard.h"







猜你喜欢

转载自blog.csdn.net/llfwdd/article/details/44752729
今日推荐