這是使用虛擬鍵盤的基本 QML 範例。
範例有 2 個實現:一個用於桌麵平颱,另一用於嵌入式平颱。前一版本允許使用虛擬鍵盤將文本輸入到多個文本字段,而後一版本使用相同 UI (用戶界麵) 但采用自定義虛擬鍵盤
InputPanel
。以下片段來自
basic.pro
展示如何設置 qmake 工程,以基於 CONFIG 選項選取閤適實現:
disable-desktop|android-embedded|!isEmpty(CROSS_COMPILE)|qnx {
DEFINES += MAIN_QML=\\\"basic-b2qt.qml\\\"
} else {
DEFINES += MAIN_QML=\\\"Basic.qml\\\"
}
範例啓用虛擬鍵盤通過設置
QT_IM_MODULE
環境變量先於加載
.qml
文件:
#include <QQuickView> #include <QGuiApplication> #include <QQmlEngine> int main(int argc, char *argv[]) { qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); QGuiApplication app(argc, argv); QQuickView view(QString("qrc:/%2").arg(MAIN_QML)); if (view.status() == QQuickView::Error) return -1; view.setResizeMode(QQuickView::SizeRootObjectToView); view.show(); return app.exec(); }
除此外,它使用自定義 TextField and TextArea 項以配置 [ENTER] 鍵行為使用 EnterKeyAction 附加特性。
import QtQuick 2.10 import QtQuick.Controls 2.3 import QtQuick.VirtualKeyboard 2.1 import "content" Rectangle { ... TextField { width: parent.width placeholderText: "One line field" enterKeyAction: EnterKeyAction.Next onAccepted: passwordField.focus = true } ... TextArea { id: textArea width: parent.width placeholderText: "Multiple line field" height: Math.max(206, implicitHeight) } }
The
TextField
and
TextArea
控件分彆擴展
Qt Quick Controls 2
類型采用
enterKeyEnabled
and
enterKeyAction
特性。
TextField
and
TextArea
實例片段可以將這些特性設為更改默認行為。
要運行範例從 Qt Creator ,打開 歡迎 模式,然後選擇範例從 範例 。更多信息,拜訪 構建和運行範例 .
文件: