QT开发中文网

如在在悬停时变换按钮上的图片

在 Qt 中,如果你想在按钮悬停时更改按钮上的图片,可以通过样式表来实现。使用 QPushButton:hover 伪状态可以定义悬停时的样式。下面是一个示例,展示如何在鼠标悬停时改变按钮的图标:

#include <QApplication>
#include <QPushButton>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QPushButton button("Text"); // 创建一个按钮,并带有文本

    // 设置初始图标和样式表
    button.setIcon(QIcon(":/path/to/your/icon_normal.png")); // 正常状态图标
    button.setIconSize(QSize(32, 32)); // 设置图标大小

    // 使用样式表设置悬停状态下的样式
    button.setStyleSheet(
        "QPushButton {"
        "text-align: left;"
        "padding-left: 40px;"
        "}"
        "QPushButton:hover {"
        "background-color: lightgray;"  // 悬停时背景颜色 (可选)
        "border: none;"                 // 去掉边框 (可选)
        "} "
    );

    button.resize(200, 100); // 设置按钮大小

    QObject::connect(&button, &QPushButton::entered, [&button]() {
        button.setIcon(QIcon(":/path/to/your/icon_hover.png")); // 悬停时图标
    });

    QObject::connect(&button, &QPushButton::leaveEvent, [&button]() {
        button.setIcon(QIcon(":/path/to/your/icon_normal.png")); // 恢复正常状态图标
    });

    button.show(); // 显示按钮

    return app.exec();
}

注意事项:

  1. 图标路径:确保将 ":/path/to/your/icon_normal.png"":/path/to/your/icon_hover.png" 替换为你的实际图片路径。
  2. 信号连接:在这个例子中,我们使用了 lambda 函数来处理 enteredleaveEvent 信号,以更改按钮的图标。这是个简化版本,你也可以创建自定义槽函数来处理这些事件。
  3. 样式表:你可以根据需要调整样式表中的其他属性,例如背景色、边框等。

这样就实现了在鼠标悬停时改变按钮上的图片。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=13322

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?