Ich möchte ein bestimmtes Steuerelement erstellen, um den Fokus innerhalb eines TabView
Tab
zu erhalten. Es scheint, dass der Erste den Fokus bekommt, egal was ich mache. Ich habe versucht, überall focus:false
Einstellung, aber es funktioniert nicht.QT 5.7 QML Wie kann ich steuern, welche Steuerung den Fokus innerhalb eines TabViews erhält?
Betrachten Sie den folgenden Code. Ich habe eine einfache Spalte mit zwei RadioButton
s und einem TextField
. Ich möchte mich für TextField
arrangieren immer Fokus zu erhalten, wenn die Registerkarte ausgewählt ist, aber es geht immer auf die erste RadioButton
import QtQuick 2.7
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
import QtQuick.Layouts 1.3
ApplicationWindow
{
visible: true
width: 800
height: 400
TabView
{
anchors.fill: parent
Tab { title: "tab1"; sourceComponent: foo }
Tab { title: "tab2"; sourceComponent: foo }
}
Component
{
id: foo
ColumnLayout
{
spacing: 32
ExclusiveGroup { id: optionGroup }
RadioButton
{
// i always get the focus!!
exclusiveGroup: optionGroup
text: "Click me"
activeFocusOnPress: true
focus: false
}
RadioButton
{
exclusiveGroup: optionGroup
text: "No, click me!"
activeFocusOnPress: true
focus: false
}
TextField
{
// but i want the focus
placeholderText: "type here"
focus: true
}
}
}
}
Press „tab2“, das zu sehen,
ich versuchte innerhalb TabView
zwingt durch Zugabe
onCurrentIndexChanged: getTab(currentIndex).item.forceActiveFocus()
Aber es macht keinen Unterschied.
Ich habe die Erklärung des Fokus gelesen, aber es hat in diesem Fall nicht geholfen.
Vielen Dank für jede Anregung oder Hilfe,
Ich hoffte, dass Sie nicht sagen würde, dass :-) Ein dieses Problem von einem Körper der Kontrollen 1 Code einkalkuliert, dass ich nur ungern ändern. Ich werde Ihre Antwort jedoch versuchen und sehen, ob ich einige Controls 2 mischen kann, um es zu beheben. Vielen Dank. –
Das ist die Antwort. Du hast Recht, es ist besser, ein 'StackLayout' zu verwenden. Tabview' hat mir nie wirklich gefallen, weil' Tabs 'Loader sind. Ich verwende Controls1 innerhalb des StackLayout und es funktioniert gut. Vielen Dank. –