Qt5.9用QStackLayout挂载QWidget时,启动程序瞬间闪现一个小框框原因和解决办法

版权声明:本文为博主原创文章,欢迎各位朋友转载。转载时,保留链接地址! 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);
}

参考内容:

https://blog.csdn.net/liang19890820

猜你喜欢

转载自blog.csdn.net/naibozhuan3744/article/details/82221766
今日推荐