QStyleSheetStyleCaches::objectDestroyed 崩溃

问题描述 投票:0回答:1

这是qstylesheetstyle.cpp中的Qt代码

void QStyleSheetStyleCaches::objectDestroyed(QObject *o)
{
    styleRulesCache.remove(o);
    hasStyleRuleCache.remove(o);
    renderRulesCache.remove(o);
    customPaletteWidgets.remove((const QWidget *)o);
    customFontWidgets.remove(static_cast<QWidget *>(o));
    styleSheetCache.remove(o);
    autoFillDisabledWidgets.remove((const QWidget *)o);
}

当对象

o
被销毁时,Qt 调用该函数来清理 QStyleSheet。但有时它会在
customPaletteWidgets.remove((const QWidget *)o);
线上崩溃。 我怀疑是因为对象已经消失,所以 const cast
const QWidget *)o
返回无效指针,或者在插入和删除项目时此
customPaletteWidgets
QHash 出现问题。我使用的是 Windows 7。

有人有什么想法吗?

c++ windows qt crash
1个回答
0
投票

你找到解决办法了吗?我也遇到了同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.