为啥单击编辑文本后不显示qml虚拟键盘,而我在.pro和main.cpp中调用插件
Posted
技术标签:
【中文标题】为啥单击编辑文本后不显示qml虚拟键盘,而我在.pro和main.cpp中调用插件【英文标题】:why qml virtualkeyboard is not show after click on edit text ,while I call plugin in .pro and main.cpp为什么单击编辑文本后不显示qml虚拟键盘,而我在.pro和main.cpp中调用插件 【发布时间】:2018-09-01 07:28:09 【问题描述】:我将开源 qt5.9 用于嵌入式设备。 我想在我的 qml 项目中使用虚拟键盘。我知道我应该在 .pro 文件中添加一个静态链接,例如:
static
QT += svg
QTPLUGIN += qtvirtualkeyboardplugin
还有添加
#include <QGuiApplication>
#include <QQmlApplicationEngine>
int main(int argc, char *argv[])
qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
return app.exec();
到 main.cpp 文件以使用虚拟键盘。但是当我点击我的文本对象时,我的虚拟键盘不会触发:
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.VirtualKeyboard 2.1
Window
visible: true
width: 640
height: 480
TextInput
id: textInput;
text:"ssssss"
height: 120;
width: parent.width - 2;
anchors.bottom: keyboard.top
color: "#000000"; // black
// http://doc.qt.io/qt-5/qinputmethod.html#properties
focus: Qt.inputMethod.visible;
verticalAlignment: TextInput.AlignVCenter;
【问题讨论】:
"为什么 qml virtualkeyboard 不火" 你期待什么?如果着火了,有人打电话给消防队吗? 在我的文本编辑中点击(触摸)时它不显示 【参考方案1】:解决了。 只需为每个 lineedit 输入类型。像这样:
InputPanel
id:inputpanel
visible:active
y:active?parent.height - inputpanel.height : parent.height
anchors.left: parent.left
anchors.right: parent.right
TextInput
id:input
inputMethodHints: Qt.ImhDigitsOnly
focus: Qt.inputMethod.visible;
text: "123211"
TextInput
id:input2
anchors.top:input.bottom
inputMethodHints: Qt.ImhLowercaseOnly
focus: Qt.inputMethod.visible;
text: "123211"
【讨论】:
以上是关于为啥单击编辑文本后不显示qml虚拟键盘,而我在.pro和main.cpp中调用插件的主要内容,如果未能解决你的问题,请参考以下文章
ExtJS Combobox Rowediting在单击更新后不显示最新值
当我在显示的键盘上单击文本字段两次时,iOS UIScrollView 无法滚动