问题:QML 使用 Window 的visibility: Window.FullScreen 属性,设置全屏时,输入法无法显示。
解决办法:
1,不使用 FullScreen属性,而是手动设置宽度
modality: Qt.ApplicationModalflags: Qt.FramelessWindowHint|Qt.Windowwidth: Screen.desktopAvailableWidth
2, main 函数中 隐藏任务栏和桌面
HWND desktop,task;desktop=FindWindow(L"ProgMan",NULL);task=FindWindow(L"Shell_TrayWnd",NULL);ShowWindow(task,SW_HIDE);//隐藏任务栏ShowWindow(desktop,SW_HIDE);//隐藏桌面
3, Window 高度设置为 桌面高度 -1 。一定要减1 不然跟全屏效果一样 还是没有输入法
engine.load(QUrl("qrc:/main.qml"));
auto window = qobject_cast<QQuickWindow*>(engine.rootObjects().first());
if (window) {
window->setIcon(QIcon(":/live.ico"));
window->setHeight(QApplication::desktop()->height()-1);
}
4,任一 析构函数 还原桌面和任务栏
HWND desktop,task;desktop=FindWindow(L"ProgMan",NULL);task=FindWindow(L"Shell_TrayWnd",NULL);ShowWindow(task,SW_SHOW);//显示ShowWindow(desktop,SW_SHOW);//显示