qt - 始终可见的 qml

标签 qt widget symbian visibility qml

我有 qml 按钮文件,当键盘可见时,我希望它在键盘上方可见。

我只是想知道我应该如何处理我的 QmlApplicationViewer,以便我的小 qml block 始终在所有其他应用程序之上可见,但您应该仍然可以访问下面的应用程序。

我已经实现了一种方法,让文件在键盘可见时变得可见,稍后我可以轻松地将它放在键盘上方,但现在我正在努力防止它窃取焦点并关闭键盘,因为那一刻键盘打开我的按钮出现,键盘关闭。当我关闭我的应用程序时,按钮消失,键盘在我最初打开它的应用程序中重新打开。我希望这是一个补充键盘功能的后台任务,该按钮将允许语音输入。

ma​​in.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
}

ma​​in.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();
}

附言。我知道键盘什么时候打开和关闭,我只想知道如何在键盘不自动关闭的情况下显示我的按钮?

最佳答案

您正在操纵 xy 但您想要的是控制重叠,即 z。所以你可以通过给它一个特殊的 z 值来影响总是在最上面的东西。看这里:

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

关于qt - 始终可见的 qml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11990294/

相关文章:

python - 如何在 pyGTK 中创建 onMouseOver 标签?

c++ - 如何使用 Symbian 的 RFile 打开文件?

qt - Qml 可滑动页面

qt - 如何从Qt的主窗口打开一个新窗口?

c++ - 右键单击 QTreeView 项目

c++ - 如果堆分配的对象被销毁并且指针被重新分配,Qt 的信号和槽系统会工作吗?

qplaintextedit 更改消息颜色

javascript - Pinterest 看板小部件 CSS 样式

android - 更新大量小部件位图时避免 FAILED BINDER TRANSACTION 错误

java - 在 javaME 中仅从取景器获取缩略图而不是整个照片