Revision control
Copy as Markdown
// Copyright (C) 2025 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#include <QApplication>
#include <QPushButton>
#include "widgettest.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
HelloWidget *widget = new HelloWidget;
widget->resize(400, 400);
QWidget *tlw = nullptr;
QPushButton *btn = new QPushButton("Make it a child widget", widget);
QObject::connect(btn, &QPushButton::clicked, widget, [&] {
if (!tlw) {
btn->setText("Make it a top-level");
tlw = new QWidget;
tlw->resize(600, 600);
widget->setParent(tlw);
widget->move(0, 0); // why is this needed?
widget->show();
tlw->show();
widget->update();
} else {
btn->setText("Make it a child widget");
widget->setParent(nullptr);
widget->show();
delete tlw;
tlw = nullptr;
}
});
widget->show();
int r = app.exec();
if (!widget->parent())
delete widget;
return r;
}