我在自定义时间轴视图中使用QTableWidget
。我想限制拖动选择,同时在表小部件中保留选择行为和模式的某些属性。
这是我的代码的一小段:
//TableWidget.cpp
TableWidget::TableWidget(QWidget* parent) : QTableWidget(10, 10, parent)
{
setStyleSheet("QTableWidget {background-color: #333333;color: #fffff8;gridline-color: #fffff8;font-size: 12pt;}");
verticalHeader()->hide();
horizontalHeader()->setHighlightSections(false);
setSortingEnabled(true);
setEditTriggers(QAbstractItemView::NoEditTriggers);
setSelectionMode(QAbstractItemView::ExtendedSelection);
setSelectionBehavior(QAbstractItemView::SelectRows);
}
问题
根据Qt-Documentation,我可以将selectionBehavior
设置为SelectRows
,但是只需单击一个单元格即可选择完整的行。问题显示在这里:
要求
通过拖动鼠标但仅在该行中进行多次选择,才首先单击它。
MultiSelection
和selectionMode
一样提供此功能,但不支持 Shift键。我尝试使用mouseEvents
实现自定义功能,但无法获得如何以编程方式选择/取消选择QTableWidget
中的特定单元格的方法。我相信我必须实现自己的mouseEvents
,但不确定如何实现上述功能。
编辑:TableWidget
始终保持空白(无数据可填充),因为我将所选内容用作视觉演示。