Qt中添加自定义位置Widget

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt中添加自定义位置Widget相关的知识,希望对你有一定的参考价值。

参考技术A 众所周知,在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等添加自定义布局。

以上。

Qt系列文章之三十五 (自定义组件)


欢迎关注我的公众号,有更多惊喜等着你!

前言

  当UI设计器提供的界面组件不满足实际设计需求时,可以从QWidget继承自定义界面组件。有两种方法使用自定义界面组件,一种 是提升法( promotion),例如前面有一个demo中QGraphicsView组件提升为自定义的QWGraphicsView类,提升法用于界面可视化设计时不够直观,不能在界面上即刻显示自定义组件的效果;另一种是为UI设计器设计自定义界面组件的Widget插件,直接安装到UI设计器的组件面板里,如同Qt自带的界面设计组件一样使用,在设计时就能看到组件的实际显示效果,只是编译和运行时需要使用到插件的动态链接库(Windows平台上)。

  本节将先介绍这两种自定义Widget组件的设计和使用方法,再介绍Qt编写和使用静态链接库和共享库(Windows 平台上就是动态链接库)的方法。

<

以上是关于Qt中添加自定义位置Widget的主要内容,如果未能解决你的问题,请参考以下文章

Qt学习笔记11.自定义控件 Customize the Widget

QT +自定义控件-spin+slider

Qt系列文章之三十五 (自定义组件)

Qt系列文章之三十五 (自定义组件)

QT-自定义信号和槽

QT编程,如何把自定义的QWidget的一个派生类放入Qlayout中,不能显示了。