void AccountsPage::done(int retval) { QTableWidget *tableW = ui->tableWidget; if(!tableW->selectionModel()) return; // Figure out which address was selected, and return it QModelIndexList indexes = tableW->selectionModel()->selectedRows(2); foreach (QModelIndex index, indexes) { QVariant address = tableW->model()->data(index); returnValue = address.toString(); }
void AccountsPage::selectionChanged() { // Set button states based on selected tab and selection QTableWidget *tableW = ui->tableWidget; if(!tableW->selectionModel()) return; if(tableW->selectionModel()->hasSelection()) { ui->copyAddress->setEnabled(true); } else { ui->copyAddress->setEnabled(false); } }
void SessionAnalysisWidget::keyPressEvent(QKeyEvent *k) { if (k->key() == Qt::Key_Escape) close(); if (k->key() == Qt::Key_C && k->modifiers() == Qt::ControlModifier) { QTableWidget *table = ui.lapTimeTableWidget; if (EventData::getInstance().getEventType() == LTPackets::PRACTICE_EVENT) table = ui.lapTimeTableWidgetFP; if (EventData::getInstance().getEventType() == LTPackets::QUALI_EVENT) { switch (ui.qualiTabWidget->currentIndex()) { case 0: table = ui.lapTimeTableWidgetQuali; break; case 1: table = ui.lapTimeTableWidgetQ1; break; case 2: table = ui.lapTimeTableWidgetQ2; break; case 3: table = ui.lapTimeTableWidgetQ3; break; } } QItemSelectionModel * selection = table->selectionModel(); QModelIndexList indexes = selection->selectedIndexes(); if(indexes.size() < 1) return; // QModelIndex::operator < sorts first by row, then by column. // this is what we need qSort(indexes.begin(), indexes.end()); // You need a pair of indexes to find the row changes QModelIndex previous = indexes.first(); indexes.removeFirst(); QString selected_text; QModelIndex current; Q_FOREACH(current, indexes) { QVariant data = table->model()->data(previous); QString text = data.toString(); selected_text.append(text); if (current.row() != previous.row()) { selected_text.append(QLatin1Char('\n')); } else { selected_text.append(QLatin1Char('\t')); } previous = current; }
void WindingWizardWidget::export_table_to_clipboard(){ QTableWidget * table = ui->tw_winding; QItemSelectionModel * selection = table->selectionModel(); QModelIndexList indexes = selection->selectedIndexes(); if(indexes.size() < 1) return; // QModelIndex::operator < sorts first by row, then by column. // this is what we need std::sort(indexes.begin(), indexes.end()); // You need a pair of indexes to find the row changes QModelIndex previous = indexes.first(); indexes.removeFirst(); QString selected_text; QModelIndex current; Q_FOREACH(current, indexes) { QVariant data = table->model()->data(previous); QString text = data.toString(); // At this point `text` contains the text in one cell selected_text.append(text); // If you are at the start of the row the row number of the previous index // isn't the same. Text is followed by a row separator, which is a newline. if (current.row() != previous.row()) { selected_text.append(QLatin1Char('\n')); } // Otherwise it's the same row, so append a column separator, which is a tab. else { selected_text.append(QLatin1Char('\t')); } previous = current; }