Qt5 QToolTip 背景色 背景样式

本文介绍了在使用Qt5进行开发时遇到的Tooltip显示问题及解决方案。作者通过自定义QToolTip的样式表,成功解决了默认样式下灰色背景黑色文字不易阅读的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在搞QT 这边的开发,升级到Qt5之后,样式发生了些变化,以前的tip的风格也变了。灰色背景黑色字,看不请。

看了多个博客,发现他们的都不能解决问题。

我的终极解决方案如下。

QToolTip{
border-style: none;
background-color: #222;
}

参考:http://www.cnblogs.com/pamilty/p/4668124.html
Qt中,要设置QToolTip(工具提示)的透明度,你需要通过`setWindowFlags()`函数和`Qt::WindowStaysOnTopHint`属性来实现。首先,确保你在创建QToolTip实例时启用窗口提示: ```cpp QToolTip *toolTip = new QToolTip(this); ``` 然后,你可以调整窗口的透明度,通常通过设置窗口样式来控制。这需要在显示QToolTip之前设置其`windowOpacity`属性,注意这个属性不是直接暴露出来的,所以我们需要间接操作。以下是一个例子,假设你想让工具提示透明度为50%: ```cpp // 获取QApplication实例 QApplication app; // 设置窗口风格,允许调整窗口透明度 QToolTip::setWindowModality(Qt::WindowModal); // 调整透明度 QWidget *parentWidget = QApplication::activeWindow(); parentWidget->setAttribute(Qt::WA_TranslucentBackground); // 如果没有这个背景透明,需要先添加 QStyleOption option; option.initFrom(parentWidget); QPainter painter(&parentWidget->viewport()); parentWidget->style()->drawPrimitive(QStyle::PE_Widget, &option, &painter, parentWidget); // 现在设置QToolTip的透明度 QColor backgroundColor = parentWidget->palette().color(QPalette::Base); QColor tooltipColor = backgroundColor.darker(160); // 调暗颜色作为基础,再调低透明度 toolTip->setStyleSheet("QToolTip { color: " + tooltipColor.name() + "; background-color: rgba(" + QByteArray::number(tooltipColor.red()) + ", " + QByteArray::number(tooltipColor.green()) + ", " + QByteArray::number(tooltipColor.blue()) + ", 0.5); }"); // 显示QToolTip toolTip->showText(parentWidget->mapToGlobal(parentWidget->rect().topLeft()), "这是你的工具提示文本"); ``` 请注意,这种方法可能因为每个平台的渲染差异而略有不同,并且透明度并不是所有平台都支持的特性。如果透明度无法达到预期效果,可以考虑只改变颜色的亮度而不改变透明度。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值