[Qt] マウスホバー時にテキストバブルがポップアップする


要件の説明: コントロール上にマウスを置くと、設定されたバブル情報を表示します

Qt5 の以前のバージョンでは、バブルの設定は C++ の他のクラス ライブラリを通じて実現する必要があり、関連する Qt クラスが Qt5 に実装されていました。また、テキストの吹き出しを設定するだけでなく、QToolTipクラスを書き換えることで必要な吹き出しスタイルを実装することもできます。

Qt 5.9.9以降サポートされていますQToolTipQWidget基本的に、 から継承されたすべてのコンポーネントはsetToolTip()バブル情報を設定できます。以下に示す Qt の基本クラスはすべてバブル情報を設定できます。

基本的に、 から継承したすべてのQWidgetQt コントロール クラスはバブルの設定をサポートしています。この記事では、テキスト バブルの機能を説明するための例として と をQLabel使用します。QPushButton

コード

コードは非常に単純で、UI インターフェイス上で 1 つずつドラッグしQLabelQPushbuttonUI インターフェイス上の信号スロットを右クリックしてスロットに移動するだけです。

#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