博主在做项目时,用了堆栈布局管理器QStackLayout,在进行QWidget挂载时,发现程序启动瞬间,出现了一个小框框的bug,但是对整个程序没有影响。
1.1原因分析
博主查阅资料和咨询qt群里大神,终于找到原因,原来是QWidget初始化时,没有自定parent原因造成的。
1.2解决办法
在初始化QWidget时,指定parent父对象就可以解决了,具体的代码如下所示:(感谢群主同时也是CSDN博主:一去丶二三里的解答)
void QSourceMirrorWidget::initStackWidget()
{
/*启动工具栏界面*/
widget1 *widget1 = new QWidget(this);
widget1 *widget2 = new QWidget(this);
stackLayout = new QStackedLayout();
stackLayout->setMargin(0);
stackLayout->setSpacing(0);
stackLayout->addWidget(widget1);
stackLayout->addWidget(widget2);
stackLayout->setCurrentIndex(0);
mainLayout->addLayout(stackLayout);
}
参考内容: