前段時間遇到QQuickWidget嵌入的qml中,文本輸入框無法輸入中文的問題。在同事的幫助下,解決此問題。方案如下:
1、QQuickWidget中創建 焦點變化 信號槽連接:
connect(quickWindow(), &QQuickWindow::activeFocusItemChanged, this, &MainQuickWidget::onActiveFocusItemChanged);
2、處理信號槽函數:
QQuickItem *pFocusItem = quickWindow()->activeFocusItem();
if (pFocusItem && pFocusItem->inherits("QQuickTextInput"))
{
disconnect(quickWindow(), &QQuickWindow::activeFocusItemChanged, this, &MainQuickWidget::onActiveFocusItemChanged);
clearFocus();
pFocusItem->forceActiveFocus();
}
這樣處理之後,文本框便可以正常輸入中文了。