问题描述
我正在使用 QT5.15.2 并面临在 QML 虚拟键盘顶部显示弹出窗口的问题。我正在将申请表 5.12.5 迁移到 5.15.2 并发现此问题。相同的代码在 qt5.12.5 中按预期工作。
main.qml
import QtQuick 2.10
import QtQuick.Window 2.10
import QtQuick.VirtualKeyboard 2.2
import QtQuick.Controls 2.5
import QtQuick.Layouts 1.3
Window {
id: window
width: 640
height: 480
visible: true
title: qsTr("Hello World")
Button{
id:buttonID
height: 50
width: 150
text: "Click me"
onClicked: {
popupX.open()
}
}
TextField{
anchors.top: buttonID.bottom
anchors.topMargin: 10
placeholderText: qsTr("Enter name")
}
InputPanel {
id: inputPanel
x: 0
y: window.height/2
width: window.width
anchors.bottom:parent.bottom
}
Popup{
id: popupX
focus: true
width: 200
height: 300
modal: true
padding: 0
closePolicy: Popup.NoAutoClose
anchors.centerIn: parent
Overlay.modal: Rectangle {
color: "#c8000000"
/* here we use 8 bit color coding
first 2 bits define opacity.
the remaining six define standard color code.
*/
}
ColumnLayout {
anchors.fill: parent
CheckBox { text: qsTr("E-mail") }
CheckBox { text: qsTr("Calendar") }
CheckBox { text: qsTr("Contacts") }
}
}
}
main.cpp
#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;
const QUrl url(QStringLiteral("qrc:/main.qml"));
QObject::connect(&engine,&QQmlApplicationEngine::objectCreated,&app,[url](QObject *obj,const QUrl &objUrl) {
if (!obj && url == objUrl)
QCoreApplication::exit(-1);
},Qt::QueuedConnection);
engine.load(url);
return app.exec();
}
在 QT 5.15 和 5.12 上运行的结果:
如果您对如何在 5.15.2 中解决此问题有任何建议,请告诉我。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)