C ++ Qt从自定义小部件继承

问题描述

我正在使用Qt和C ++进行项目。 现在我的问题是:

UI类中是否可以继承?

例如:这是我要继承的小部件

//windowA.h
namespace Ui {
    class WindowA;
}

class WindowA : public QWidget
{
    Q_OBJECT

public:
    explicit WindowA(QWidget *parent = nullptr);
    ~AddWindow();

    QPushButton *button; 
};

//windowA.cpp
WindowA::WindowA(QWidget *parent) :
    QWidget(parent)
{
    button = new QPushButton();
    button->setText("Save");
    connect(button,SIGNAL (clicked()),this,SLOT (//slot));

    qgridLayout *layout = new qgridLayout();

    layout->addWidget(button,0);

    this->setLayout(layout);
}

这是继承自WindowA

的小部件
//windowB.h
namespace Ui {
    class WindowB;
}

class WindowB : public WindowA
{
    Q_OBJECT

public:
    explicit WindowB(QWidget *parent = nullptr);
    ~WindowB();
};

我将如何实现QPushButton,以便可以在两个类中设置不同的文本?

我可以添加QPushButton,但是在WindowA中设置的文本也将在WindowB中设置。问题是为WindowB中的按钮设置了与WindowA中的按钮设置不同的文本

解决方法

如果我正确理解了您的问题,那么您要做的就是更改您在构造函数中的按钮上设置的文本:

WindowB::WindowB(QWidget *parent) :
    WindowA(parent)
{
    button->setText("Something else!");
}