记一次控件提升后,运行却不显示的Bug

.h文件

cpp 复制代码
#ifndef VOLUMETOOLBTN_H
#define VOLUMETOOLBTN_H

#include <QToolButton>
#include <memory>

class VolumeToolBtn : public QToolButton {
Q_OBJECT

public:
    explicit VolumeToolBtn(QWidget *parent = nullptr);
    ~VolumeToolBtn() override;
    void initUi();
protected:
    void enterEvent(QEnterEvent *event) override;
    void leaveEvent(QEvent *event) override;
public slots:
    void onClicked();
private:
    bool m_isNoVolume = false;
    std::unique_ptr<QWidget>m_volumeWidget;
};


#endif //VOLUMETOOLBTN_H

.cpp文件

cpp 复制代码
#include "VolumeToolBtn.h"

VolumeToolBtn::VolumeToolBtn(QWidget *parent)
    :QToolButton(parent)
    ,m_volumeWidget(std::make_unique<QWidget>(this))
{
    initUi();
    connect(this, &QToolButton::clicked, this, &VolumeToolBtn::onClicked);
}

VolumeToolBtn::~VolumeToolBtn() {}

void VolumeToolBtn::initUi() {
    this->setStyleSheet(R"(QToolButton{border-image: url(':///Res/playbar/volume-on-gray.svg');}
                             QToolButton:hover{border-image: url(':///Res/playbar/volume-on-blue.svg');})");
}
。。。。。后面省略

找了半天发现原来是狗屎m_volumeWidget遮住了按钮。。。真是无语,头一回碰到这么奇葩的错误。改为m_volumeWidget(std::make_unique<QWidget>())即可

相关推荐
qq_466302452 小时前
如何通过部分文件名,读取出整个文件名
c++·qt
半杯咖啡半行码3 小时前
QML进阶实战(二):异步网络、性能优化与工程化落地
网络·qt·性能优化·qml
半杯咖啡半行码5 小时前
QML与 Qt Quick入门实战:从零基础到 C++ 双向通信详解
java·qt·交互
扶尔魔ocy6 小时前
【QT+FFmpeg】知识点编目及传送门
qt·ffmpeg
qq_401700416 小时前
Qt Modbus 工程化封装:超时、重试、取消与资源释放,别让异步请求变成隐患
数据库·qt
码匠许师傅17 小时前
【C++三方组件】Qt 概览:桌面 C++ 的事实标准与许可证三轨
开发语言·c++·qt
小王C语言18 小时前
Qt常用控件:输入类控件,单行/多行输入框、下拉框、(日期)微调框、旋钮、滑动条
开发语言·qt
1001101_QIA19 小时前
.exe does not seem to be a Qt executable.
开发语言·qt
ShineWinsu1 天前
对于Qt:QWidget通用属性的解析—上
数据库·qt·microsoft·面试·gui·属性·qwidget
Quz1 天前
QML 字体度量与文本度量:FontMetrics 与 TextMetrics
qt