c++ - 在 Qt 中,当我使用 css 定义悬停图像时,它不起作用
问题描述
我有一个带有几个 QPushButton 的工具栏。它们触发显示模式,并且一次只能使用一种模式:激活模式 1 时,模式 2、模式 3 等将被禁用。
当一种模式被激活时,相应的按钮上会显示一个“激活的图标”,而所有其他按钮都显示一个“未激活”的图标。每个按钮都有不同的图标。
现在,我希望当鼠标悬停在按钮上时更改图标以指示用户可以单击(基本上是悬停模式,主要是为了保持我们应用程序的设计一致性)。
这是我到目前为止所做的,但它并没有像我预期的那样工作:悬停图标没有显示(我只是放了 2 个按钮来简化)。
工具栏.h
#ifndef TOOLBAR_H
#define TOOLBAR_H
#include <QWidget>
namespace Ui {
class Toolbar;
}
class Toolbar : public QWidget
{
Q_OBJECT
public:
explicit Toolbar(QWidget *parent = nullptr);
private slots:
void on_mode1button_clicked(bool);
void on_mode2button_clicked(bool);
private:
Ui::Toolbar * ui;
};
#endif
工具栏.cpp
#include "toolbar.h"
#include "ui_toolbar.h"
Toolbar::Toolbar(QWidget *parent) : QWidget(parent)
{
ui->setupUi(this);
ui->mode1Button->setObjectName("mode1");
ui->mode2Button->setObjectName("mode2");
on_mode1button_clicked(true);
}
void Toolbar::on_mode1button_clicked(bool)
{
ui->mode1button->setIcon(QIcon("icon1_activated.png"));
ui->mode2button->setIcon(QIcon("icon2.png"));
// do all the stuff to actually change the display mode...
}
void on_mode2button_clicked(bool)
{
ui->mode2button->setIcon(QIcon("icon2_activated.png"));
ui->mode1button->setIcon(QIcon("icon1.png"));
// do all the stuff to actually change the display mode...
}
样式.css
QPushButton#mode1, #mode2
{
background-color: none;
border:none;
}
QPushButton#mode1:hover
{
image: url(icon1_hover.png);
}
QPushButton#mode2:hover
{
image: url(icon2_hover.png);
}
鼠标悬停时不显示悬停图标,我不明白我做错了什么。是否可以仅使用 css 解决此问题?
解决方案
推荐阅读
- spring - Spring/MongoDB/Junit:使用 Fongo 进行单元测试时出现空指针异常
- javascript - 如何将输入值分配给复选框值,然后计算检查总数?
- node.js - 如何跟踪使用 nightwatch 和 selenium 异步渲染的许多元素?
- python - 如何获得变量输出的平均值?
- api - 使用 Web 地址的 API
- python - 有条件地合并数组的numpy方法是什么?
- haskell - Haskell 函数根据子列表的长度对整数列表的列表进行排序
- typescript - lodash 获取正确的类型
- php - htaccess 不拒绝 PHP 访问文件
- python - Google Cloud 中 Python 3 的类型包返回错误