我希望QTableWidget
有下一个行为:
它应该是行可选的,只能选择一行,我可以用setSelectionBehavior(QAbstractItemView::SelectRows);
来做
setSelectionMode(QAbstractItemView::SingleSelection)
现在我只想在用户点击第一列中的项目时选择行。当用户点击其他列中的项目时,选择不应更改。我该怎么办?
答案 0 :(得分:0)
您需要将QTableWidget
子类化为以这种方式重新实现mousePressEvent
#include <QMouseEvent>
#include <QTableWidget>
class Table : public QTableWidget {
virtual void mousePressEvent(QMouseEvent * event) {
//the selectable column index
const int SELECTABLE_COLUMN = 0;
//retrieve the cell at pos
QModelIndex i = indexAt(event->pos());
//check if the item is in the desired column
if ( i.column() == SELECTABLE_COLUMN ) {
//behave as normal
QTableView::mousePressEvent(event);
}
//else nothing (ignore click event)
}
};
备注强>
QTableView