2012-08-16 2 views
3

키보드가 보이면 키보드 위에 보이는 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. 키보드가 열리거나 닫히는 것을 알고 있습니다. 키보드를 자동으로 닫지 않고 내 단추를 표시하는 방법을 알고 싶습니다.

+0

하면 이벤트 필터를 설치하거나 어떤 식 으로든 키보드 이벤트에 가입 할 수 없습니다. 그런 다음 keybaord의 상태 변화에 의해 손상되면 - 그에 따라 처리 할 수 ​​있습니다 : http://www.developer.nokia.com/Community/Discussion/showthread.php?235025-Qt-N97- Detection-keyboard-open – FaddishWorm

+0

네,하지만 제가 어떻게 부탁하는 것은 그것을 다루는 방법입니까? – Gerharddc

+0

키보드가 활성화 된 상태에서 어떻게 처리 할 수 ​​있는지 알고 있습니까? – Gerharddc

답변

0

xy을 조작하고 있지만 원하는 것은 겹침을 제어하는 ​​것입니다 (z). 따라서 특수한 값인 z 값을 지정하여 항상 위에있는 내용에 영향을 줄 수 있습니다. 여기를 참조하십시오 :

http://qt-project.org/doc/qt-4.8/qml-item.html#z-prop

+0

이것은 뷰어 내부의 드로잉에만 관련이있는 것처럼 보이지만 다른 응용 프로그램의 렌더링 구성 요소와 운영 체제의 렌더링 구성 요소에 상대적인 뷰어 자체의 위치에 영향을 미치지 않습니다 – Gerharddc