【Qt】鼠标 hover 操作时弹出文字气泡

[TOC]

需求描述:鼠标 hover 在一个控件上时,展示设置好的气泡信息

演示

相关说明

Qt5之前的版本要设置气泡需要通过C++中其他的类库去实现,在Qt5中则已经实现了相关的Qt类。并且除了设置文字气泡之外,还可以通过重写 QToolTip 类实现自己需要的气泡样式。

Qt 5.9.9 已经支持 QToolTip。基本所有继承于 QWidget 的组件都可以通过 setToolTip()设置气泡信息。以下所展示的Qt基类都可以设置气泡信息。

基本上所有继承于 QWidget 的Qt控件类都支持设置气泡,本文以 QLabelQPushButton 为例演示文字气泡功能。

支持 SetToolTip的控件

image-20220422160147373

代码

代码很简单,在ui界面拖一个 QLabel 和一个 QPushbutton 即可,信号槽直接在ui界面右击转到槽即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "widget.h"
#include "ui_widget.h"
#include <QImage>
#include <QPixmap>

Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);


QPixmap img(":/Win11.jpg");

ui->label->setPixmap(img);
ui->label->setScaledContents(true);
ui->label->setToolTip(QString("壁纸《Win11.png》"));
ui->pushButton->setToolTip(QString("隐藏或显示图片"));
}

Widget::~Widget()
{
delete ui;
}

void Widget::on_pushButton_clicked()
{
if(ui->label->isVisible())
ui->label->hide();
else
ui->label->setVisible(true);
}

【Qt】鼠标 hover 操作时弹出文字气泡
https://hodlyounger.github.io/B_Code/Qt/【Qt】气泡/
作者
mingming
发布于
2023年10月27日
许可协议