如何在QT的Designer中增加自己的控件

如何在QT的Designer中增加自己的控件,第1张

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

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

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

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

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

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

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

众所周知,在Qt中,Widget上添加子控件可以使用Layout的addWidget添加。但是在某些情况下,需要自定义使用setGeometry来自定义显示控件的布局,此时若使用了父控件使用了Layout,子控件使用setGeometry则不起作用了。因为父控件的布局已经被Layout管理了,所以设置setGeometry是无效的。

在Qt 5.14上,mac系统,验证正确的步骤是:

1.当父控件Widget显示之后,在父控件Widget showEvent里添加子控件,此时父控件Widget不要使用Layout,直接new 子Widget(父Widget)即可;即便是QStackedLayout也不行,此布局会使得子Widget setGeometry 无效。(为什么要在showEvent里才添加子控件,因为父控件刚创建时,可能获取的宽高是不正确的);

2.子控件->setGeometry自己想要的位置;

3.子控件根据需要可设置Layout等添加自定义布局。

以上。

使用dt设计GUI时,可以使用Canvas控件来将画布添加到控件上,步骤如下:1.在dt设计界面中,添加一个Canvas控件;2.将要添加的画布拖入Canvas控件中;3.通过代码控制画布,实现对图形的 *** 作。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11745587.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存