代码改变世界

Qt 自定义控件

2024-03-11 18:01  @学无止境  阅读(268)  评论(0编辑  收藏  举报

参考:

https://blog.csdn.net/danshiming/article/details/134383612
https://blog.csdn.net/u011832219/article/details/128531359

 

1、创建自定义控件

新建qt项目(项目1),选择其他项目中的 “Qt设计师自定义控件”,构建套件的版本类型需要与'帮助'列表中'About Qt Creator'弹窗的信息版本一致。

编译生成release版本的控件程序,windows下生成xxx.lib和xxx.dll, linux下生成 xxx.so

windows下好像只能用release版本,linux下好像debug和release都可以。

2、windows下使用控件

a) 将生成的dll文件放在qt安装目录

xxx\Qt5.12.9\Tools\QtCreator\bin\plugins\designer 和

xxx\Qt\Qt5.12.9\5.12.9\msvc2017\plugins\designer

两个文件夹下。

b) 将自定义控件的xxx.h头文件和xxx.lib文件放在要使用自定义控件的项目(项目2)的根目录下

c) 在项目2中添加对头文件的引用和库文件xxx.lib,下文标红部分

HEADERS += \
    mainwindow.h \
    myline.h

FORMS += \
    mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/./ -lmylineplugin
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/./ -lmylineplugind

d) 将xxx.dll文件放在项目2的生成目录下。

3、Linux下使用控件

debug版的程序对应debug版的库文件.so,同理release版本对应release版本。

a) 将生成的.so文件放在qt安装目录

xxx/Qt5.12.9/Tools/QtCreator/lib/Qt/plugins/designer 和

xxx/Qt5.12.9/5.12.9/gcc_64/plugins/designer

两个文件夹下。

b) 将自定义控件的xxx.so文件放在要使用自定义控件的项目(项目2)的根目录下

c) 在项目2中添加对头文件的引用和库文件xxx.so,下文标红部分

HEADERS += \
    hhline.h \
    mainwindow.h

FORMS += \
    mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

RESOURCES += \
    HelloW.qrc

unix:!macx: LIBS += -L$$PWD/./ -lhhlineplugin

d) 将xxx.so文件放在项目2的生成目录下。