自定义的Qt控件系列-创建项目(1)

 

在开发过程中,我们可能会复用控件的需求,比如说一些自定义的QLabel,QPushButton控件。一次开发,到处使用。所以就有必要把这个控件独立出来,哈哈,想想还是挺有意思的,以前都是用Qt自带的控件,这次可以把自己的控件给别人使用。

1. 结果展示

注意下图的3点:

  • 在Widget 窗口中里面增加了自定义窗口部件 custom_widget
  • 在中间的Form窗口中添加custom_widget控件,在控件绘制了一行文字
  • 在最右边的属性设计器自定义3个属性

2. 具体的步骤

  • Qt creator创建项目

好了。到这里我们准备工作就结束了。来,走一个编译下。

编译ok了,之后呢?好像有点不对劲啊,就这样?

我们还需要一个步骤,就是需要把编译出来的dll文件,拷贝到Qt的plugin目录下。我写了个bat文件去做这件事情。

下面有四点需要你注意的

  • 把下面的Qt安装目录修改为你安装的目录

  • 注意bat文件的放置位置,因为我是采用了相对位置复制文件

  • 注意拷贝的时候文件名,你的文件名可能和我是不一样的

  • 我这里为了演示只拷贝了release版的

xcopy .\build-custom_widget-Desktop_Qt_5_5_0_MSVC2013_32bit-Release\release\*.dll "C:\Qt\Qt5.5.0\5.5\msvc2013\plugins\designer\" /Y
xcopy .\build-custom_widget-Desktop_Qt_5_5_0_MSVC2013_32bit-Release\release\*.lib "C:\Qt\Qt5.5.0\5.5\msvc2013\plugins\designer\" /Y

成功如下提示

  • 编译,复制到plugin的目录,启动designer看效果

好了,什么都不要说。拷贝到指定目录之后我们看下效果如何。记住Designer需要重启下,它需要重新加在dll文件的。

嘿嘿,怎么样,效果出来了吧。是不是3分钟就够了。当然如果你要工程中用的。那可是需要花时间精雕细琢的。

到这里我就已经成功大半了,回过头来我们3分钟前创建的项目。因为我们需要稍微修改下代码,完成一个自定义话的东西。

  1. 打开我们的项目找到如下文件

  2. 打开customwidget2.cpp文件,注意不是customwidget2plugin.cp

打开之后你会发现里面其实空空如也,除了声明一个class,没有什么代码。

好了,在这里就是我们大显身手的时候。我打算在这里override paintEvent函数。

在customwidget2.h头文件里面我们重新override paintEvent。

protected:
    virtual void paintEvent(QPaintEvent * event);

在customwidget2.cpp头文件里面,下面的这段代码的目的就是在窗口中绘制一段蓝色文字。

void CustomWidget2::paintEvent(QPaintEvent * event)
{
    QPainter painter(this);
    QRect temp_rect = rect();
    painter.setPen(Qt::blue);
    painter.drawText(rect(), Qt::AlignCenter, "this is test custom widget");

3. 编译好之后,copy dll文件plugin目录,并把所有的designer关闭

我们重新打开designer,并新建一个窗口,看到的效果如下所示。就表明你成功了。

 好了,剩下的就是你自由发挥了。

其实还有很多的内容我没有说。我们留到下一节再说吧。比如customwidget2plugin.cpp这里面又是做什么用处的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值