Qt:自定义tooltip

打印 上一主题 下一主题

主题 1042|帖子 1042|积分 3126

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在主窗口里获取鼠标的悬浮变乱
_customTooltip是我定义在私有变量里的
 AbnormalToolTipWidget *_customTooltip = nullptr;
  1. bool RobotAbnormalBtns::eventFilter(QObject *obj, QEvent *event)
  2. {
  3.     if (event->type() == QEvent::HoverEnter) {
  4.         // 鼠标悬浮时显示自定义的工具提示
  5.         if (!_customTooltip) {
  6.             _customTooltip = new AbnormalToolTipWidget(this);
  7.         }
  8.         _customTooltip->addAbnormalInfo(/* 这里填入向widget传的数据*/);
  9.         QPoint pos = mapToGlobal(static_cast<QWidget*>(obj)->pos());
  10.         _customTooltip->move(mapToGlobal(QPoint(this->rect().right()+15,this->rect().center().y()-74))); // 设置提示显示的位置
  11.         _customTooltip->show();
  12.         _customTooltip->raise();
  13.     } else if (event->type() == QEvent::HoverLeave) {
  14.         if (_customTooltip) {
  15.             _customTooltip->hide();
  16.         }
  17.     }
  18.     return QObject::eventFilter(obj, event);
  19. }
复制代码

AbnormalToolTipWidget:
  1. #include <QWidget>
  2. #include <QStandardItemModel>
  3. namespace Ui {
  4. class AbnormalToolTipWidget;
  5. }
  6. class AbnormalToolTipWidget : public QWidget
  7. {
  8.     Q_OBJECT
  9. public:
  10.     explicit AbnormalToolTipWidget(QWidget *parent = nullptr);
  11.     ~AbnormalToolTipWidget();
  12.     void addAbnormalInfo(QVariantList infoList);
  13. private:
  14.     Ui::AbnormalToolTipWidget *ui;
  15. };
复制代码
  1. #include "AbnormalToolTipWidget.h"
  2. #include "ui_AbnormalToolTipWidget.h"
  3. #include "PublicClass/StyleObject.h"
  4. #include "UiClass.h"
  5. AbnormalToolTipWidget::AbnormalToolTipWidget(QWidget *parent)
  6.     : QWidget(parent)
  7.     , ui(new Ui::AbnormalToolTipWidget)
  8. {
  9.     ui->setupUi(this);
  10.     // 设置自定义提示框的大小和外观
  11.     setWindowFlags(Qt::ToolTip);
  12.     setAttribute(Qt::WA_OpaquePaintEvent, false);//这里不设置为false,会有显示问题
  13.     setAutoFillBackground(true);
  14.     /*这里就可以开始设计自定义的内容了*/
  15.     // 设置自定义提示框的大小
  16.     resize(553, 60);
  17. }
  18. AbnormalToolTipWidget::~AbnormalToolTipWidget()
  19. {
  20.     delete ui;
  21. }
  22. void AbnormalToolTipWidget::addAbnormalInfo(QVariantList infoList)
  23. {
  24.       //这是我定义的 外部传数据的函数  根据外部数据修改显示内容
  25. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

圆咕噜咕噜

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表