问题描述:
QT下显示电脑摄像头,需要自定义一个Qwidget的控件,取名叫videoWidget:
1.自定义控件类的定义代码如下:
class videoWidget :public QWidget
{
Q_OBJECT
public:
explicit videoWidget(QWidget *parent = nullptr);
在Ui文件进行相应的控件提升:
在运行代码时,控件效果始终无法出现
原因分析:
先在自定义类videoWidget中的构造函数中下断点。
经过调试,代码是进入不了这里的,自定义控件的构造函数都进入不了,说明控件自定义创建过程中失败。
整个项目检查,与videoWidget相关的配置都是正常的。
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0">
<item>
<widget class="videoWidget" name="widget" native="true"/>
</item>
</layout>
.....
<customwidgets>
<customwidget>
<class>videoWidget</class>
<extends>QWidget</extends>
<header>videowidget.h</header>
<container>1</container>
</customwidget>
</customwidgets>
解决方案:
经过分析查找,问题应该是出现在控件的实例化的时候,就查找自定义控件实例化的代码,在ui_mainwindow.h中发现了相关的信息。
立马补上
最后运行代码,自定义的视频控件,正常的显示出来了
总结:这里说明qt的图型化编辑器并不是能确保UI中编辑的内容能完全到位。