Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.8.0
-
None
Description
I am trying to embed a QLineEdit widget in a QML window. However, when I move or resize the QML window, the QLineEdit text stops updating (loses focus?). I have tried all focus types, but none seem to work. For reference, this worked perfectly in version 6.7.3.
#include "containerwidget.h"#include <QApplication> #include <QQmlApplicationEngine> #include <QQmlContext> #include <QQuickWindow> constexpr QMargins contentsMargins = {20, 20, 20, 20}; int main(int argc, char *argv[]) { QApplication app(argc, argv); ContainerWidget *container = new ContainerWidget; container->setMinimumSize(QSize(800,480)); container->setAttribute(Qt::WA_NativeWindow); // !! QWindow *wdgWin = container->windowHandle(); container->setVisible(true); QQmlApplicationEngine engine; engine.setInitialProperties({{ "widgetWindow", QVariant::fromValue(wdgWin) }}); engine.load(QUrl(QLatin1String("qrc:/Main.qml"))); auto &quickWindow = *qobject_cast<QQuickWindow *>(engine.rootObjects().first()); quickWindow.showNormal(); return app.exec(); }
import QtQuickWindow { title: "Qt Quick" color: "#2CDE85" required property QtObject widgetWindow; property int contentsMargins: 20 width: widgetWindow.minimumWidth + contentsMargins * 2 height: widgetWindow.minimumHeight + contentsMargins * 2 WindowContainer { id: calendar window: widgetWindow width: window.minimumWidth height: window.minimumHeight anchors.centerIn: parent } }
#include "containerwidget.h"ContainerWidget::ContainerWidget(QWidget *parent) : QWidget(parent) { auto *layout = new QVBoxLayout(this); QLineEdit * line1 = new QLineEdit(this); line1->setFocusPolicy(Qt::WheelFocus); QLineEdit * line2 = new QLineEdit(this); line2->setFocusPolicy(Qt::StrongFocus); QLineEdit * line3 = new QLineEdit(this); line3->setFocusPolicy(Qt::ClickFocus); QLineEdit * line4 = new QLineEdit(this); line4->setFocusPolicy(Qt::TabFocus); layout->addWidget(line1); layout->addWidget(line2); layout->addWidget(line3); layout->addWidget(line4); layout->addWidget(new QPushButton(this)); }ContainerWidget::~ContainerWidget() {}