Qt: c ++: Как создать SIGNAL / SLOT при выборе строки в QTableView

у меня есть QTableView который работает правильно, показывая мою модель в графическом интерфейсе. Тем не менее, я хотел бы создать «сигнал / слот», который работает, когда я выбираю строку из QTableView,

Как я могу это сделать?

5

Решение

Вы можете сделать это следующим образом:

connect(ui->tableView->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)),
SLOT(slotSelectionChange(const QItemSelection &, const QItemSelection &))
);

И слот будет:

void MainWindow::slotSelectionChange(const QItemSelection &, const QItemSelection &)
{
QModelIndexList selection = ui->tableView->selectionModel()->selectedRows();//Here you are getting the indexes of the selected rows

//Now you can create your code using this information
}

Я надеюсь это тебе поможет.

3

Другие решения

Использовать currentRowChanged(const QModelIndex & current, const QModelIndex & previous) сигнал от модели выбора (документы).

2

Смотрите документацию QAbstractItemView https://qt-project.org/doc/qt-4.7/qabstractitemview.html

void QAbstractItemView активированный (const QModelIndex &индекс) [сигнал]

Этот сигнал испускается при активации элемента, указанного индексом
пользователем. Как активировать предметы зависит от платформы; например,
один или два раза щелкнув по элементу, или нажав клавишу Return или
Введите ключ, когда элемент является текущим.

И используйте QModelIndex :: row ()

2
По вопросам рекламы [email protected]