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

相关推荐
沫璃染墨12 小时前
《Qt从零入门系列(一):Qt框架初识——从发展历史到跨平台开发》
c++·qt·系统架构·gui
郝学胜-神的一滴1 天前
Qt 高级编程 040:按钮悬浮弹出滑块弹窗的完整攻略
开发语言·c++·qt·软件工程·用户界面
我是小灰灰吖1 天前
Ubuntu 22.04 安装 SSH 服务与远程调试环境配置指南
qt·ubuntu·ssh
雨田言炎1 天前
四、关于Qt项目需要知道的
开发语言·笔记·qt
必须得开心呀2 天前
qt生成dump文件并定位异常
开发语言·qt
Quz2 天前
QML ProgressBar 自定义样式:自绘组件、Material风格
qt
Quz2 天前
QML 环形进度条:Canvas 绘制与多环进度
qt
我是小灰灰吖2 天前
Qt崩溃捕获实战:qBreakpad从源码编译到崩溃分析全流程指南
linux·qt·ubuntu
熬夜苦读学习2 天前
Qt--网络编程
开发语言·qt
上海安当技术3 天前
C/S 桌面软件怎么接 UKey 强认证?C# SDK 与 C 动态库集成 WinForms/Qt/工控实战
c语言·qt·c#