记一次控件提升后,运行却不显示的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>())即可

相关推荐
抠脚学代码1 天前
Qt与Linux
linux·数据库·qt
机器视觉知识推荐、就业指导1 天前
Qt 6 所有 C++ 类(官方完整清单 · 原始索引版)
开发语言·c++·qt
凯子坚持 c1 天前
在 Visual Studio 2019 中配置 Qt 插件开发环境:编译原理 + 底层逻辑解析
ide·qt·visual studio
枫叶丹41 天前
【Qt开发】Qt系统(八)-> Qt UDP Socket
c语言·开发语言·c++·qt·udp
艾莉丝努力练剑1 天前
【QT】Qt 从零上手:Hello World、项目文件与实战避坑指南
linux·运维·开发语言·c++·qt·继承·qt5
prettyxian1 天前
【QT】信号与槽:自定义信号、参数传递与Lambda
开发语言·qt
初次见面我叫泰隆2 天前
Qt——1、初识Qt
开发语言·c++·qt
一只小bit2 天前
Qt 事件:覆盖介绍、处理、各种类型及运用全详解
前端·c++·qt·cpp
不会c嘎嘎2 天前
QT中的事件机制
开发语言·qt
涛起云永2 天前
Qt 源码编译 -- obj文件无法找到
开发语言·qt