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

相关推荐
飞剑神2 分钟前
qt svg缺失元素, 原因是不支持 rgba
开发语言·qt
眠りたいです1 小时前
Qt音频播放器项目实践:文件过滤、元数据提取与动态歌词显示实现
c++·qt·ui·音视频·媒体·qt5·mime
奇树谦14 小时前
QT|windwos桌面端应用程序开发,当连接多个显示器的时候,如何获取屏幕编号?
开发语言·qt
Franklin17 小时前
Python界面设计【QT-creator基础编程 - 01】如何让不同分辨率图像自动匹配graphicsView的窗口大小
开发语言·python·qt
郝学胜-神的一滴17 小时前
深入理解QFlags:Qt中的位标志管理工具
开发语言·c++·qt·程序人生
看到我,请让我去学习21 小时前
Qt— 布局综合项目(Splitter,Stacked,Dock)
开发语言·qt
创想未来CTF21 小时前
Qt同步处理业务并禁用按钮
qt
谱写秋天1 天前
Qt 5.5 的安装与配置(使用 VSCode编辑)
开发语言·vscode·qt
前端市界2 天前
前端视角: PyQt6+Vue3 跨界开发实战
前端·qt·pyqt
誰能久伴不乏2 天前
Qt 动态属性(Dynamic Property)详解
开发语言·qt