5

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

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

但是背景没有被剪裁在角落:

在此处输入图像描述

为什么没有剪辑?

4

1 回答 1

4

在提出您的问题两年后,在同一个问题上苦苦挣扎,使用实验和艰苦的谷歌搜索,我得出以下结论:

  • 仅使用 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 样式从文件应用到动态创建的小部件,但无论如何这不是“无代码解决方案”。唉,到目前为止找不到更好的方法。

于 2018-09-07T15:12:38.653 回答