这是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。
有人有什么想法吗?
你找到解决办法了吗?我也遇到了同样的问题。