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

铁佛  论坛元老 | 2024-10-9 17:32:21 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1822|帖子 1822|积分 5466

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
.h文件
  1. #ifndef VOLUMETOOLBTN_H
  2. #define VOLUMETOOLBTN_H
  3. #include <QToolButton>
  4. #include <memory>
  5. class VolumeToolBtn : public QToolButton {
  6. Q_OBJECT
  7. public:
  8.     explicit VolumeToolBtn(QWidget *parent = nullptr);
  9.     ~VolumeToolBtn() override;
  10.     void initUi();
  11. protected:
  12.     void enterEvent(QEnterEvent *event) override;
  13.     void leaveEvent(QEvent *event) override;
  14. public slots:
  15.     void onClicked();
  16. private:
  17.     bool m_isNoVolume = false;
  18.     std::unique_ptr<QWidget>m_volumeWidget;
  19. };
  20. #endif //VOLUMETOOLBTN_H
复制代码
.cpp文件
  1. #include "VolumeToolBtn.h"
  2. VolumeToolBtn::VolumeToolBtn(QWidget *parent)
  3.     :QToolButton(parent)
  4.     ,m_volumeWidget(std::make_unique<QWidget>(this))
  5. {
  6.     initUi();
  7.     connect(this, &QToolButton::clicked, this, &VolumeToolBtn::onClicked);
  8. }
  9. VolumeToolBtn::~VolumeToolBtn() {}
  10. void VolumeToolBtn::initUi() {
  11.     this->setStyleSheet(R"(QToolButton{border-image: url(':///Res/playbar/volume-on-gray.svg');}
  12.                              QToolButton:hover{border-image: url(':///Res/playbar/volume-on-blue.svg');})");
  13. }
  14. 。。。。。后面省略
复制代码
找了半天发现原来是狗屎m_volumeWidget遮住了按钮。。。真是无语,头一回遇到这么奇葩的错误。改为m_volumeWidget(std::make_unique<QWidget>())即可

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

铁佛

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表