Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Larry от Август 06, 2018, 13:53



Название: [РЕШЕНО]QTableView выделение строки и колонки на пересечении ячейки
Отправлено: Larry от Август 06, 2018, 13:53
Добрый день, форумчане.
Возник вопрос. Как можно выделить строку и колонку одновременно при наведении мышки на ячейку?
Спасибо.


Название: Re: QTableView выделение строки и колонки на пересечении ячейки
Отправлено: zhbr от Август 07, 2018, 07:30
вот это по клику. по наведению надо видимо отлавливать QMouseEvent
Код:
void MainWindow::on_tableView_clicked(const QModelIndex& index)
{
    ui->tableView->selectionModel()->clear();
    int rows = _model.rowCount();
    int columns = _model.columnCount();
    for (int i = 0; i < rows; i++)
        for (int j = 0; j < columns; j++)
            if (i == index.row() || j == index.column())
                ui->tableView->selectionModel()->select(_model.index(i, j), QItemSelectionModel::Select);
}


Название: Re: QTableView выделение строки и колонки на пересечении ячейки
Отправлено: Larry от Август 07, 2018, 08:04
Спасибо. Попробую...


Название: Re: QTableView выделение строки и колонки на пересечении ячейки
Отправлено: gil9red от Август 07, 2018, 10:39
Еще, думаю через Qt Style Sheet можно будет настроить на выделение ячеек


Название: Re: QTableView выделение строки и колонки на пересечении ячейки
Отправлено: Larry от Август 07, 2018, 11:32
Спасибо. А как сделать через QStyleSheet, не подскажите?
Сейчас сделал, через наследование QTableView и отлавливаю mouseMoveEvent, но за счет обновления всей модели (состояние ячейки) происходят тормоза, особенно заметно при быстром перемещении..


Название: Re: QTableView выделение строки и колонки на пересечении ячейки
Отправлено: Larry от Август 07, 2018, 14:49
Переделал, как предлагал, zhbr (перед этим делал свою реализацию), то в принципе приемлемо по быстродействию. Можно вопрос считать решенным.


Название: Re: [РЕШЕНО]QTableView выделение строки и колонки на пересечении ячейки
Отправлено: gil9red от Август 07, 2018, 15:23
@Larry, похоже не получится -- думал это как в CSS/HTML для таблиц будет


Название: Re: [РЕШЕНО]QTableView выделение строки и колонки на пересечении ячейки
Отправлено: Larry от Август 07, 2018, 15:53
Спасибо. Но и с обработкой mouseMoveEvent, нормально работает.