QToolTip背景颜色不会被边框半径剪裁

时间:2016-08-24 10:20:15

标签: qt qtstylesheets qtooltip

我设计了这样的工具提示(不是那种颜色)

QToolTip {
    border: 1px solid blue;
    border-radius: 10px;
    background-color: red;
}

但背景没有在角落处剪裁:

enter image description here

为什么不剪裁?

1 个答案:

答案 0 :(得分:0)

问了问题两年后,通过实验和严格的谷歌搜索努力解决了同一问题,我得出以下结论:

  • 仅使用CSS不能获得想要的东西,而不能使用小部件
  • QToolTip实际上是一个QLabel
  • 实施自定义工具提示的工作要多一些,但只有一点:setAttribute(Qt::WA_TranslucentBackground); + setMask()可以很好地工作,以及实现小部件透明性的其他更简单的方法

最后,如果您确实喜欢它,则递归地遍历小部件的子级并安装事件过滤器可能是一个足够的解决方案,例如:

if (event->type() == QEvent::ToolTip) {
    QHelpEvent *helpEvent = static_cast<QHelpEvent *>(event);
    // Your code here
    return true;
}

如果您不希望到处都有这些工具提示,则更容易。有时,您已经必须执行类似的操作才能将文件中的复杂CSS样式应用于动态创建的小部件,但是无论如何,这不是“无代码解决方案”。 las,到目前为止找不到更好的方法。