キーボードが表示されているときにキーボードの上に表示したいqmlボタンファイルがあります。
私の小さなqmlブロックが他のすべてのアプリケーションの上に常に表示されるように、QmlApplicationViewerで何をすべきかを知りたいだけですが、以下のアプリケーションには引き続きアクセスできるはずです。
キーボードが表示されているときにファイルが表示されるようにする方法を既に実装しており、後でキーボードの真上に簡単に取得できますが、キーボードが表示された瞬間にフォーカスを盗んでキーボードを閉じるのを防ぐのに苦労しています開いたボタンが表示され、キーボードが閉じます。アプリを閉じた瞬間にボタンが消え、最初に開いたアプリでキーボードが再び開きます。これをキーボード機能を補完するバックグラウンド タスクにしたいのですが、ボタンを使用すると音声入力が可能になります。
main.qml:
import QtQuick 1.1
import com.nokia.symbian 1.1
Button{
signal keyActive()
x: 0
y: 0
text: "Voice"
property bool bob: inputContext.visible
onBobChanged: console.log("keyboard" + bob), bob ? keyActive() : null
}
main.cpp:
#include <QtGui/QApplication>
#include "qmlapplicationviewer.h"
#include <QObject>
#include <QGraphicsObject>
Q_DECL_EXPORT int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QmlApplicationViewer viewer;
viewer.setMainQmlFile(QLatin1String("qml/topwidget/main.qml"));
viewer.setWindowFlags(Qt::WindowStaysOnTopHint);
viewer.setAttribute(Qt::WA_ShowWithoutActivating);
viewer.move(10, 20);
viewer.releaseKeyboard();
viewer.show();
QObject *rootObject = viewer.rootObject();
QObject::connect(rootObject, SIGNAL(keyActive()), &viewer, SLOT(raise()));
return app.exec();
}
PS。キーボードがいつ開閉するかは知っていますが、知りたいのは、キーボードが自動的に閉じずにボタンを表示する方法だけですか?