Qt Style Sheet Bugs(7年后)

时间:2018-04-06 17:15:25

标签: qt qt-designer qtstylesheets

您好我是Qt的新手,正在跟进有关样式错误的问题:Qt style sheets bugs?

我正在尝试设置一个按钮(使用QTDesigner),以便在悬停时,文本具有下划线装饰。

此代码有效:

#printBtn:hover {
background-color: transparent;  
text-decoration: underline;
}

此代码不起作用:

#printBtn:hover {   
text-decoration: underline;
}

我是否遗漏了为什么文本装饰会被背景颜色混淆的问题?据我所知,上面链接堆栈中的结论是QPushButton不支持字体更改。这还是正确的吗?它似乎确实支持它,但在条件下你没有背景颜色。

谢谢!

1 个答案:

答案 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提交错误报告,否则我们无能为力。