一个关于QtC++类的问题

一个百思不得其解的问题。首先假如我有三个类,分别叫btn1,btn2和lab,前两个是继承于QPushButton,第三个是继承于QLabel。
btn1和btn2分别都有自己的成员变量以及成员函数
在lab中有一个成员变量用来记录对象(类似于 btn1 * b),让整个类都能访问,但是这个对象是可以根据类的变化而变化,也就是假如我在lab类内写一个成员函数,通过传进来的数字来确定这个b是btn1还是btn2的对象。
不知道有没有方法可以实现,我主要是为了在、通过lab的keyPressEvent操纵不同btn内的函数,希望各位帮忙看看,谢谢

这种情况我更倾向于创建一个中间虚类Btn,继承于QPushButton,然后定义一个方法A是纯虚函数。
然后btn1和btn2都继承于Btn,然后分别实现自己的A()。
那么在lab里存储Btn *b, 只要调用b->A()就可以自己判断是调用btn1::A()还是btn2::A()

class lab : public QLabel {
public:
    lab(QWidget *parent = nullptr) : QLabel(parent), m_button(nullptr) {}

    void setButton(int buttonNum) {
        if (buttonNum == 1) {
            m_button = &b1;
        } else if (buttonNum == 2) {
            m_button = &b2;
        }
    }

    void pressButton() {
        if (m_button) {
            m_button->click(); // 调用对应按钮的 click 函数
        }
    }

private:
    QPushButton *m_button;
    QPushButton b1;
    QPushButton b2;
};