Qt 4.3.1 QListWidgetItem QListWidget(checkfunktion)

oilaf07

Grünschnabel
Hallo zusammen,
Ich habe ein QListWidget erstellt, in dem ich Items per Schleife einfüge.
Und zwar habe ich eine Liste von verschiedenen Namen erstellt, für jeden Namen soll es ein Item erstellen und dieses dann in die Liste einfügen, dies funktioniert.
Nun möchte ich die Items nach ihren checkstatus abfragen, also ob sie Checked oder eben nich Checked sind. Wie kann ich das abfragen, wenn ich das Item in einer anderen Funktion in einer Schleife habe.
Ich möchte gerne sowas haben wie( if item(info.strCaption)->isChecked, dann mach z.B. eine MessageBox)
Da ich die Items in einer anderen Funktion erstelle, kann ich nicht mehr darauf zugreifen, kann mir bitte einer helfen.


Code:
void InstallTool::Install() {
   
   //Delete the checked Applicationversion
   ApplicationManager * app = ApplicationManager::Exemplar();

   ApplicationManager::ListApplication list;
   list = app->GetApplicationList();

//mach das für jeden Namen aus der Liste
   foreach (ApplicationManager::InfoApplication info, list) {
      if( Hier die Frage: Wie kann ich fragen ob was gechecked is oder ned){

                  QMessageBox::critical ( this, 
                  tr("Warnung"), 
                  tr(QString(" %1 ").arg(info.strCaption)));
      }
   }


void InstallTool::CreateInstalledList() {

   ApplicationManager * app = ApplicationManager::Exemplar();

   ApplicationManager::ListApplication list;
   list = app->GetApplicationList();

   this->installedListView->addItem("Delete");
   this->installedListView->addItem("");


 //mach das für jeden Namen aus der Liste
   foreach (ApplicationManager::InfoApplication info, list) {
      QListWidgetItem *item1 = new QListWidgetItem(( info.strCaption ), installedListView );
      item1->setFlags( Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
      item1->setCheckState( Qt::Unchecked );

   }
}
 
Hallo,

wie wäre es denn so?:
C++:
...
for (int i = 0; i < this->installedListView->count(); i++) {
    if (this->installedListView->item(i)->checkState() == Qt::Checked) {
        QMessageBox::critical(this,   
                              tr("Warnung"),
                              tr(QString(" %1 ").arg(...))); /* hier anstatt mit deinem info Objekt mit  this->installedListView->data() arbeiten */
    }
}
...

Gruß,
RedWing
 
Zurück