Comment puis-je trouver de l'élément sélectionné dans un QTreeWidget?
J'ai une classe qui hérite de QTreeWidget. Comment puis-je trouver la ligne sélectionnée?
Habituellement je connecter des signaux à fentes de cette façon:
connect(myButton, SIGNAL(triggered(bool)), this, SLOT(myClick()));
Cependant, je ne peux pas trouver quelque chose de semblable pour QTreeWidget->QTreeWidgetItem
.
La seule façon que j'ai trouvée est de redéfinir les mousePressEvent de la QTreeWidget classe comme ceci:
void MyQTreeWidget::mousePressEvent(QMouseEvent *e){
QTreeView::mousePressEvent(e);
const QModelIndex index = indexAt(e->pos());
if (!index.isValid())
{
const Qt::KeyboardModifiers modifiers = QApplication::keyboardModifiers();
if (!(modifiers & Qt::ShiftModifier) && !(modifiers & Qt::ControlModifier))
clearSelection();
}
}
Je ne l'ai pas essayé encore. Est la seule solution ou est-il un moyen plus facile?
OriginalL'auteur Giancarlo | 2008-12-02
Vous devez vous connecter pour publier un commentaire.
À l'aide de la itemClicked() le signal de manquer une sélection modifications apportées à l'aide du clavier. Je suppose que c'est une mauvaise chose dans votre cas.
OriginalL'auteur Parker Coates
Dusty est presque correct. Mais le itemSelectionChanged signal ne sera pas vous dire de l'élément sélectionné.
vous donnera l'élément sélectionné(s).
Connectez-vous un logement à la itemSelectionChanged signal, puis d'appeler selectedItems() sur l'arbre widget pour obtenir l'élément sélectionné(s).
OriginalL'auteur Thomas Watnedal
vous pouvez simplement utiliser ce :
pour obtenir votre texte dans la variable mot.
OriginalL'auteur Sofiane
Selon la documentation ici il semble que vous devez connecter le QTreeWidget itemSelectionChanged() signal à un slot dans votre classe. C'est vous dire qui QTreeWidgetItem a été sélectionné, qui est ce que je crois que vous voulez.
OriginalL'auteur Dusty Campbell
ooops, j'ai résolu simplement en utilisant ceci:
cependant merci pour les réponses 😀
OriginalL'auteur Giancarlo