1、区别Qt中父子关系与C++中的继承关系两个概念
本文使用父亲、儿子来表示Qt中的父子关系,使用基类、子类表示C++中的继承关系。
首先,我们通过创建两个类来更好地理解这两个概念的区别,分别是一个继承自QMainWindow类的MainWindow类和一个继承自QPushButton的PushButton类。具体如下:
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr)
{}
~MainWindow()
{
std::cout << "~MainWindow()\n" << std::flush;
}
};
class PushButton : public QPushButton
{
Q_OBJECT
public:
PushButton(QWidget *parent = nullptr)
{}
~PushButton()
{
std::cout << "~PushButton()\n" << std::flush;
}
};
然后运行下面的main函数:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow* w = new MainWindow();
w->setWindowTitle("MainWindow");
PushButton* p = new PushButton();
p->setParent(w);
p-&g