qtdesign 样式会影响到其他控件_[转载]如何在QT的Designer中增加自己的控件

使用过MFC的朋友,一定对MFC中派生其提供的基本类,重载其消息响应处理函数,从而可以自由的修改MFC的控件的方式印象深刻。和多的网友就是通过这种方式来,来解决MFC中一些常用控件发现bug,而微软又长期没有给修改的问题。这种方式十分的方便灵活。而在qt中,遇到控件不能满足我们的要求,而我们要修改控件类的情况应该怎么处理呢?在这里,QT给我们提供了另外的一种方式:向designer中添加插件。下面,我介绍一下具体的实现步骤:

首先,我们要编写一个主动态库,来实现我们自己的控件。

其次,还要写一个接口动态库,用来实现designer中调用我们自己的控件。这一步很关键。这个动态库中程序结构都是qt固定的。具体参见附录。

最后,编译写好的上面两个插件,要拷贝一些文件到相应目录下:

分别将主动态库和库文件拷贝到qt安装的bin和lib目录下;

将接口动态库和库文件拷贝到qt安装目录的pluginsdesigner目录下;

将主动态库的接口头文件拷贝到qt安装目录的include目录下;

这样,我们的写的控件就添加完成了。这时打开desinger就可以在工具条中看到我们写的控件了。我们就可以像其它控件一样使用这个控件了。

附实现代码:

qwtplugin.pro

# pro file for the Qwt designer plugin

#

# Please note that the Qwt designer integration

# is limited by the current (Qt <=

3.1.x) design

# of the Qt plugin API. As soon as TrollTech will allow

# individual dialogs for complex widgets the result

# will be more satisfying.

#

# Qwt designer plugin needs Qt >= 3.x. It is

# not intended to support Qt 2.x like the Qwt lib

# does.

TARGET = qwtplugin

TEMPLATE = lib

CONFIG += qt warn_on thread plugin

MOC_DIR = moc

OBJECTS_DIR = obj

INCLUDEPATH += ../include

DESTDIR = plugins/designer

unix:LIBS += -L../lib -lqwt

win32:LIBS +=

../lib/qwt.lib

linux-g++:QMAKE_CXXFLAGS += -fno-exceptions

target.path=$(QTDIR)/plugins/designer

INSTALLS += target

HEADERS += qwtplugin.h

SOURCES += qwtplugin.cpp

IMAGES +=

pixmaps/qwtplo

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值