// Copyright (C) 2025 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include <QApplication>
#include <QPushButton>
#include <QSize>
#include <QString>
#include <QVBoxLayout>
#include <QWidget>
#include <QtOhosExtras>
namespace {
constexpr QSize defaultWindowSize = {500, 100};
void setWindowTitleToNativeId(QWidget *window)
{
auto nativeWindowId = QtOhosExtras::tryGetNativeWindowId(window->windowHandle());
window->setWindowTitle("ID: " + (nativeWindowId != nullptr ? QString::number(*nativeWindowId) : "<invalid>"));
}
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
QPushButton button("Create window");
QObject::connect(
&button, &QPushButton::clicked, &window,
[&window]() {
auto *newWindow = new QWidget(&window);
newWindow->setWindowFlags(Qt::Window);
newWindow->resize(defaultWindowSize);
newWindow->show();
setWindowTitleToNativeId(newWindow);
});
QVBoxLayout layout;
layout.addWidget(&button);
window.setLayout(&layout);
window.resize(defaultWindowSize);
window.show();
setWindowTitleToNativeId(&window);
return app.exec();
}