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

标签 qt qtstylesheets qtooltip

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

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

但背景不会在角落处被剪裁:

enter image description here

为什么不剪辑?

最佳答案

在你的问题被问到两年后,在同样的问题上苦苦挣扎,通过实验和谷歌搜索,我得出了以下结论:

  • 仅使用 css 无法获得想要的东西,而使用小部件则无法获得
  • QToolTip 实际上是一个 QLabel
  • 实现自定义工具提示需要更多的工作,但只有一点:setAttribute(Qt::WA_TranslucentBackground); + setMask()工作正常,以及其他更简单的方法来实现小部件透明度

  • 最后,如果你真的很喜欢它,递归遍历小部件的 child 并安装事件过滤器可能是一个足够的解决方案,比如:
    if (event->type() == QEvent::ToolTip) {
        QHelpEvent *helpEvent = static_cast<QHelpEvent *>(event);
        // Your code here
        return true;
    }
    

    如果您不希望这些工具提示随处可见,那就更容易了。有时您已经需要做一些类似的事情来将复杂的 CSS 样式从文件应用到动态创建的小部件,但无论如何这不是“无代码解决方案”。唉,到目前为止找不到更好的方法。

    关于QToolTip 背景颜色不会被边框半径剪裁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39120586/

    相关文章:

    qt - 我需要做什么才能将 cout 与 opencv 一起使用?

    Qt 设计器自定义小部件 : using flags

    ios - Qt/QMake iOS 设置目标、设备、其他 XCode 设置

    Qt 如何为带/不带菜单的 QToolButton 设置不同的宽度?

    c++ - [Qt]如何支持:pressed state of style sheet for custom widget?

    c++ - 当 QToolTip 应该跟随 QGraphicsItem 上的鼠标时出现奇怪的行为

    qt - 获取以字节为单位的QString长度(不是字符)

    qt - QComboBox AbstractItemView::item

    c++ - 如何在qt中包含菜单项的工具提示