我有qml按鈕文件,我希望在鍵盤可見時在鍵盤上方可見。始終可見qml
我只想知道我應該如何處理我的QmlApplicationViewer,這樣我的小qml塊總是可以在所有其他應用程序之上看到,但是您仍然可以訪問下面的應用程序。
我已經實現了一種讓文件變得可見的方式,當鍵盤可見時,我可以很容易地在鍵盤上方得到它,但現在我正在努力防止它偷取焦點並關閉鍵盤,因爲當鍵盤被打開時,我的按鈕出現並且鍵盤關閉。當我關閉我的應用程序時,按鈕消失,鍵盤在我最初打開的應用程序中重新打開。我希望這是一個補充鍵盤功能的後臺任務,按鈕將允許語音輸入。
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。我知道當鍵盤打開和關閉時,我只想知道如何在沒有鍵盤自動關閉的情況下顯示我的按鈕?
你能不能安裝一個事件過濾器,或訂閱以某種方式鍵盤事件。然後,一旦你受到密鑰狀態變化的影響 - 你可以相應地處理它:http://www.developer.nokia.com/Community/Discussion/showthread.php?235025-Qt-N97-Detecting-keyboard-open – FaddishWorm 2012-08-24 14:50:38
是的,但我問的是如何處理它? – Gerharddc 2012-08-28 16:57:51
一旦我知道鍵盤處於活動狀態,您是否知道如何處理它? – Gerharddc 2012-09-04 03:41:08