TiAN--GL 2025-02-08 09:20 采纳率: 0%
浏览 19

'void (QButtonGroup::*)(QAbstractButton *)' to 'void (QButtonGroup::*)(int)' is not allowed

用QT实现一个图片循环播放功能时遇到的一个报错。
去网上搜,也没有找到很有帮助的回答。
哪位兄弟能帮忙看看解答一下,感谢!

img

  • 写回答

6条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2025-02-08 09:20
    关注

    以下回复引自免费微信小程序:皆我百晓生。 如问题解决,还请采纳。如仍有疑问,请回复留言或私信博主,以便获得更精准的帮助。

    VOID (QBUTTONGROUP::*)(QABSTRACTBUTTON *) 是一个在 QT 中的类,用于获取按钮的索引。如果想在类中使用 VOID (QBUTTONGROUP::*)(INT),你需要将类重命名为 QBUTTONGROUP::*)(INT). 这样可以避免 VOID (QBUTTONGROUP::*)(QABSTRACTBUTTON *) 的限制。

    以下是修改后的类:

    #INCLUDE <QWIDGET>
    #INCLUDE <QABSTRACTBUTTON>
    
    CLASS MYBUTTONGROUP : PUBLIC QWIDGET {
        Q_OBJECT
    
    PUBLIC:
        MYBUTTONGROUP(QWIDGET *PARENT = NULLPTR);
        ~MYBUTTONGROUP();
    
    PRIVATE SLOTS:
        VOID CLICKED(CONST QMODELINDEX &INDEX);
    };
    
    MYBUTTONGROUP::MYBUTTONGROUP(QWIDGET *PARENT) :
        QWIDGET(PARENT),
        M_BUTTON(0)
    {
        SETMINIMUMSIZE(250, 250);
    
        CONNECT(&M_BUTTON, SIGNAL(CLICKED()), THIS, SLOT(CLICKED()));
    }
    
    VOID MYBUTTONGROUP::CLICKED(CONST QMODELINDEX &INDEX)
    {
        IF(INDEX.ISVALID())
            EMIT CLICKED(INDEX);
    }
    

    这样你就可以在类名前添加 MYBUTTONGROUP::() 来避免限制了使用 VOID (QBUTTONGROUP::*)(QABSTRACTBUTTON *)。现在你的代码应该可以正常运行了。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月8日