版权声明:本文为博主原创文章,欢迎各位朋友转载。转载时,保留链接地址! https://blog.csdn.net/naibozhuan3744/article/details/82221766
博主在做项目时,用了堆栈布局管理器QStackLayout,在进行QWidget挂载时,发现程序启动瞬间,出现了一个小框框的bug,但是对整个程序没有影响。如下图所示:
挂载程序
小框框
正常界面
1.1原因分析
博主查阅资料和咨询qt群里大神,终于找到原因,原来是QWidget初始化时,没有自定parent原因造成的。
1.2解决办法
在初始化QWidget时,指定parent父对象就可以解决了,具体的代码如下所示:(感谢群主同时也是CSDN博主:一去丶二三里的解答)
void QSourceMirrorWidget::initStackWidget()
{
/*启动工具栏界面*/
QMirrorOneToOneWidget *mirrorOneToOneWidget = new QMirrorOneToOneWidget(this);
QMirrorOneToManyWidget *mirrorOneToManyWidget = new QMirrorOneToManyWidget(this);
stackLayout = new QStackedLayout();
stackLayout->setMargin(0);
stackLayout->setSpacing(0);
stackLayout->addWidget(mirrorOneToOneWidget);
stackLayout->addWidget(mirrorOneToManyWidget);
stackLayout->setCurrentIndex(0);
mainLayout->addLayout(stackLayout);
}
参考内容: