首页 > 解决方案 > 如何创建具有独特形状的自定义、即时、箭头形工具提示?

问题描述

在当今的许多网页上,您经常会看到带有指向其目标的箭头的即时工具提示,类似于:

https://www.w3schools.com/css/tryit.asp?filename=trycss_tooltip_arrow_bottom

(更具体地说,我正在寻找类似的东西:https ://www.youtube.com/watch?v=0Jedht9Arec )

你将如何在 QT 中准确地复制它?我不一定要寻找超级自动化的东西,只是可以给定位置出现的东西,以及删除它的函数调用。此外,如果可能,它应该具有弯曲的、抗锯齿的角。

我试过使用自定义 QToolTip,但它的行为不符合我的标准。我还尝试了一个带有 Popup 标志的自定义 QDialog,但它冻结了上面显示的对话框。

关于如何进行的任何建议?


根据下面两条评论的要求,这里是之前引用的 QDialog 场景的代码。准备好自己,它很多:

// Assuming "this" is the parent dialog
QDialog* popup = new QDialog(this, Qt::Popup);
popup->show();

此代码阻止父对话框(“this”对象)的鼠标悬停事件,因此不适合作为工具提示替代品。

标签: c++tooltipqt5

解决方案


您可以使用QWidget::setMask来指定小部件的自定义形状。此外,您必须将小部件的窗口标志设置为包含Qt::ToolTip.


推荐阅读