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


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

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

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

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

代码

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

#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);
}

演示

在这里插入图片描述

支持 SetToolTip的控件

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Fuel_Ming/article/details/124348526