j'avoir un comportement étrange qui me gênant lorsque je tente de faire ce code:Comportement étrange sur ComboBox lors de la lecture avec mise au point et popup.visible
import QtQuick 2.7
import QtQuick.Controls 2.0
ApplicationWindow {
id: window
visible: true
width: 640
height: 480
Rectangle {
color: "green"
width: parent.width/2
height: parent.height
anchors.right : parent.right
ComboBox {
id:combo
popup.visible: combo.activeFocus
model: [ "Banana", "Apple", "Coconut" ]
}
}
CheckBox {
id:check
}
}
Si je clique sur le CheckBox
puis sur la ComboBox
, le ComboBox.popup
apparaît pendant 1 ms puis disparaît. Je ne comprends pas pourquoi parce que activeFocus = true
Avez-vous une idée pourquoi?
Vous avez sélectionné quelque chose, alors popup.close() sera appelé, en réglant popup.visible = false. Qu'attendez-vous? – derM
Que voulez-vous dire? J'ai sélectionné le 'ComboBox': Je clique sur le' CheckBox'. Ensuite, je clique sur le 'ComboBox'. J'ai donc choisi le 'ComboBox', donc l'accent est maintenant sur le' ComboBox'. Mais si doubleclick sur le 'ComboBox' au lieu de simplement cliquer, cela fonctionnera bien. –
Ce genre de cas d'utilisation n'a tout simplement jamais été envisagé. Ce que je peux imaginer, c'est que ComboBox reçoit un événement de souris et le passe à l'implémentation de classe de base qui gère le focus. Le contrôle gagne le focus actif et le boom, le popup est ouvert. Ensuite, l'exécution revient au gestionnaire d'événements souris de ComboBox, qui active la visibilité de la fenêtre contextuelle comme elle devrait le faire dans des circonstances normales, et la fenêtre contextuelle est donc immédiatement fermée. Il peut être facilement résolu en interrogeant la visibilité de la fenêtre avant de faire la mise au point. N'hésitez pas à signaler un bug. – jpnurmi