Hi, I am having a problem getting a QML form with a text input to work properly when hosted by QQuickView. The problem is that the text input will only get the focus once. If the focus goes to another window on the desktop then clicking in the form does not return the focus to it. The issue is not present when the Qml is viewed in qmlscene via Qt Creator. This is on OSX 10.8.5 with Qt 5.1.1 built with macx-clang-32.
Example code is below. Is there something that I am omitting that is causing this behaviour? Glenn focus.qml: import QtQuick 2.1 import QtQuick.Controls 1.0 Rectangle { id: main objectName: "main" width: 640 height: 480 signal closed onFocusChanged: { console.log("focus") } TextField { id: text_field1 objectName: "text_field1" x: 93 y: 299 width: 471 height: 22 placeholderText: "Text Field" text: activeFocus ? "I have active focus!" : "I do not have active focus" onFocusChanged: { console.log("focus text_field1") } } Button { id: button1 x: 488 y: 397 text: "Close" onClicked: { closed() } } } focus.cpp: #include "focus.h" #include <QCoreApplication> #include <QWidget> #include <QQmlEngine> #include <QUrl> #include <QProcess> #include <QStringList> #include <QQuickItem> #include <iostream> // Find the Qml libraries QString qt5_qml_dir() { QString program = "qmake"; QStringList arguments; arguments << "-query" << "QT_INSTALL_QML"; QProcess process; process.setProgram(program); process.setArguments(arguments); process.start(); if (!process.waitForFinished()) return ""; QString result = process.readAllStandardOutput(); std::cout << result.toUtf8().constData() << std::endl; return result; } Focus::Focus(QWidget *parent) : QDialog(parent) { view_ = new QQuickView(); view_->setResizeMode(QQuickView::SizeViewToRootObject); // Add Qt Quick library path view_->engine()->addImportPath(qt5_qml_dir()); // The qml file will need to be copied into Contents/MacOS/ view_->setSource(QUrl(QCoreApplication::instance()->applicationDirPath() + "/focus.qml")); QWidget *w = QWidget::createWindowContainer(view_, this); w->setMinimumSize(view_->size()); w->setMaximumSize(view_->size()); QQuickItem *root = view_->rootObject(); connect(root, SIGNAL(closed()), this, SLOT(onClosed())); } void Focus::onClosed() { accept(); } main.cpp: #include <QApplication> #include "focus.h" int main(int argc, char **argv) { QApplication app (argc, argv); Focus f; f.show(); return app.exec(); } _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest