2

默认情况下,编辑 QTable 中的项目会选择单元格中的所有文本。我想避免这种情况。但是,我似乎无法找到发生这种情况的地方。

我写了一个简单的自定义委托,它继承自QStyledItemDelegate,并返回一个自定义对象,它简单地继承自QLineEdit. 在这些课程中,我尝试了一些我认为可以完成“技巧”的组合,例如禁用QLineEdit::focusInEvent(),指定 my 的选择QLineEdit,但没有任何效果。

我得到的最接近的是,当我单击一个单元格时,我设置了我想要的选定文本。但是在单击单元格的那一刻和执行我的自定义选择的那一刻之间,无论如何都会选择整个文本,这是我想避免的。

任何的想法?谢谢,

4

1 回答 1

2

像这样编写自定义 QLineEdit:

class MyLineEdit : public QLineEdit {
public:
  MyLineEdit(QWidget*parent=0) : QLineEdit(parent)
  {}

  void showEvent(QShowEvent*)
  {
    deselect();
    setSelection(1,2); // should be configurable
  }
};

并将其设置为编辑器小部件,我可以双击表格单元格并获得带有一些预选文本的行编辑,而不会闪烁。无论如何,整个单元格在双击中间被选中,不知道这是否适合您。

于 2012-04-05T16:50:22.077 回答