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

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

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

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

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

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

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

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

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

请打开qt reference document,搜索QGraphicsItem或者直接在编辑界面按F1。请看下默认构造函数:QGraphicsItem ( QGraphicsItem * parent = 0 )和void setParentItem ( QGraphicsItem * newParent ),虽然没有直接提供添加子项目的方法接口,这个是按照窗口的父子关系模式做的,Qt的父子关系式双向1对1关系,因此没有明确提供addchild等可能造成冲突的接口。请在子项目初始化或者使用setparentitem改变父子对应关系。

可以,你可以参考assitant中的说明

void QListWidget::setItemWidget(QListWidgetItem * item, QWidget * widget)

Sets the widget to be displayed in the given item.

This function should only be used to display static content in the place of a list widget item. If you want to display custom dynamic content or implement a custom editor widget, use QListView and subclass QItemDelegate instead.

上面的翻译:

该函数应该只用来在一个list widget item位置显示静态内容。如果你想要显示自定义动态内容或实现一个自定义编辑控件,使用QListView和子类化QItemDelegate代替。


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

原文地址:https://54852.com/bake/7919795.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存