您好我是Qt的新手,正在跟进有关样式错误的问题:Qt style sheets bugs?
我正在尝试设置一个按钮(使用QTDesigner),以便在悬停时,文本具有下划线装饰。
此代码有效:
#printBtn:hover {
background-color: transparent;
text-decoration: underline;
}
此代码不起作用:
#printBtn:hover {
text-decoration: underline;
}
我是否遗漏了为什么文本装饰会被背景颜色混淆的问题?据我所知,上面链接堆栈中的结论是QPushButton不支持字体更改。这还是正确的吗?它似乎确实支持它,但在条件下你没有背景颜色。
谢谢!
答案 0 :(得分:0)
这确实是一个Qt错误,我能够用Qt 5.10.1获得相同的结果。
QPushButton确实支持字体更改。事实并非如此,但它已被“修复”(见this commit)。
我想问题是在文件qtbase / src / widgets / styles / qstylesheetstyle.cpp的第3484行:
if (rule.hasPosition() && rule.position()->textAlignment != 0) {
因为这个if子句的else部分(第3556行)将调用:
ParentStyle::drawControl(ce, &butOpt, p, w);
事实上,你也可以通过设置text-align:
来强制它工作#printBtn:hover {
text-align: center;
text-decoration: underline;
}
除非在http://bugreports.qt.io提交错误报告,否则我们无能为力。