如何限制QTableWidget中的选择

时间:2011-12-28 16:39:25

标签: c++ qt qtablewidget

如何限制在QTableWidget中选择的行/列?我需要强制用户使用连续的选择(已经完成)来精确选择两列和任意数量的行。

谢谢!

1 个答案:

答案 0 :(得分:3)

你可能需要做两件事之一:

  1. 您必须创建QItemSelectionModel的子类并实现添加和删除所选QModelIndex es的功能,以便您只添加2行中的项目。
  2. 您可以通过自定义实现来捕获QItemSelectionModel发出的信号,例如:

    connect(tableWidget->selectionModel(), SIGNAL(selectionChanged(QItemSelection &, QItemSelection &)), selectionHandler, SLOT(updateSelection(QItemSelection &, QItemSelection &)));

  3. selectionHandler是检查QModelIndexQItemSelection项的行和列的对象,并删除您希望用户访问的行范围之外的所有索引保持然后:

    selectionHandler->ignoreSelectionUpdateSignal();
    tableWidget->selectionModel()->select(QItemSelection&);
    selectionHandler->acceptSelectionUpdateSignal();
    

    ignoreaccept您需要确保不会进入无限循环处理selectionChanged信号。