2014-06-26 29 views
6

Mam QListWidget, który wyświetla listę nazw za pomocą PyQt w Python. Jak mogę uzyskać QListWidgetItem dla danej nazwy?Jak uzyskać element QListWidget według nazwy?

Na przykład, jeśli mam następujące elementy: QListWidget z 4 elementami, jak mogę uzyskać element zawierający tekst = dan?

QListWidget

Odpowiedz

9

Pyton równoważne vahancho za odpowiedź:

items = self.listWidgetName.findItems("dan",Qt.MatchExactly) 

if len(items) > 0: 

    for item in items: 
     print "row number of found item =",self.listWidgetName.row(item) 
     print "text of found item =",item.text() 
+0

Dzięki, pomogło mi to. – answerSeeker

5

Można użyć QListWidget::findItems() funkcję. Na przykład:

QList<QListWidgetItem *> items = listWidget->findItems("dan", Qt::MatchExactly); 
if (items.size() > 0) { 
    // An item found 
} 
+1

@panofish umieszczać nową odpowiedź, jeśli masz zamiar dodać logika Pythona. To jest odpowiedź vahancho, której nie powinieneś edytować w rzeczach, które nie są zgodne ze znaczeniem OP, który zamieszczał tylko w powyższym przykładzie. Po prostu zrób nową odpowiedź :) – secretformula

+0

Jestem oryginalnym plakatem i pytałem o logikę Pythona. Jestem wdzięczny vahancho za kierowanie mną we właściwym kierunku, ale python jest tym, czego szukałem. Jeśli opublikuję nową odpowiedź, będę musiała oznaczyć własną odpowiedź jako poprawną i zabrać dobrą pracę vahanchos. – panofish

+1

@panofish to sposób działania SO, nie jest odpowiedni do edycji czyjejś odpowiedzi poza ich intencją. Vahancho musiałby samodzielnie wykonać tę edycję. Zobacz [to] (http://meta.stackoverflow.com/a/261224/897794). Dlaczego nie po prostu przegłosować, jeśli odpowiedź była ** przydatna **. – secretformula

0
items = self.listWidgetName.findItems("dan",Qt.MatchContains); 

To działa najlepiej podczas pracy z QListWidget pozycji