Qt-ohjelmointi
Table-View ja QVector

Jos olet esimerkkien mukaisesti luonut QVectorin nimeltään bookList koodilla QVector bookList; ja lisännyt siihen kirjoja, voit näyttää ne QtableView-komponentissa(video alla) seuraavasti:

  1. Lisää sovellukseen QtableView ja anna sen nimeksi tableBooks
  2. Lisää koodi:
    auto *tableModel = new QStandardItemModel(bookList.size(), 3, this);
    
    tableModel->setHorizontalHeaderLabels({ tr("ID"), tr("Nimi"), tr("Kirjoittaja") });
    
    for (int row = 0; row < bookList.size(); ++row) {
        const Book &book = bookList[row];
        tableModel->setItem(row, 0, new QStandardItem(QString::number(book.id)));
        tableModel->setItem(row, 1, new QStandardItem(book.name));
        tableModel->setItem(row, 2, new QStandardItem(book.author));
    }
    
    ui->tableBooks->setModel(tableModel);
    ui->tableBooks->verticalHeader()->setVisible(false);
    ui->tableBooks->resizeColumnsToContents();
    

QtableView:sta voidaan saada valittu data ulos seuraavalla tavalla:

  1. Designerissa valitse tableBooks ja aseta selectionMode=SingleSelection ja selectionBehavior=SelectItems(kuva1)
  2. Tee tableBooks:lle clicked event ja sinne koodi
    QVariant value=index.sibling(index.row(),index.column()).data();
    QString selected_value=QVariant(value).toString();
    
    ui->labelResult->setText("Valittu "+selected_value);
    
Video

kuva1



Toggle Menu