0
我正在爲Ubuntu和Windows開發QT交叉平板應用程序。我的問題很簡單,但對QT來說有點新,我無法弄清楚。我有QML中的波紋管代碼。我在我的qml中使用QT TextField
。當第一次加載QML時,我希望id_username
TextField應該在初始位置(0)默認顯示光標,這不會發生。當我用鼠標單擊相同的TextField時,光標在初始位置可見。我在做focus: true
這是沒有用的。接下來,我添加了cursorVisible: true
,該遊標在加載qml時可見,但我無法輸入任何內容(輸入任何內容),直到我點擊TextField
。QT qml TextField在第一次加載時未顯示光標
TextField
{
id: id_username
objectName: "id_username"
placeholderText: qsTr("username")
color: "#000000"
font.pixelSize: 20
cursorPosition: 0
selectByMouse: true
anchors.horizontalCenter: parent.horizontalCenter
focus: true
background: Rectangle
{
anchors.horizontalCenter: parent.horizontalCenter
implicitWidth: 200
border.color: id_username.focus ? "#000000": "#36404e"
border.width: id_username.focus ? 2: 1
radius: id_instruction.height/4
}
}
請讓我知道我做錯了什麼。有沒有從那裏可以調用forceActiveFocus()
QMetaObject :: invokeMethod中(m_pWindow-> findChild( 「用戶名」),「 forceActiveFocus「) 從上面的C++代碼激活焦點工作正常。我們如何才能在QML中實現同樣的事情。 (添加評論,因爲它可能會給讀者一些提示) –
Swapnil
_是否有任何onLoad函數?_ ['Component.onCompleted'](http://doc.qt.io/qt-5/qml-qtqml-component.html#完成信號) – m7913d
此代碼適用於我,即控件專注於應用程序啓動。你可以試試'Component.onCompleted:forceActiveFocus()'來強制這個。 – folibis