2012-04-05 109 views
2

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

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

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

有什么想法?谢谢,

回答

2

编码自定义QLineEdit的是这样的:

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

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

并将其设置为编辑器部件,我可以双击单元格并获得线编辑与无任何闪烁一些预先选定的文本。无论如何,整个单元格在双击中选中,不知道这是否可以接受。

+0

这个伎俩。谢谢! – piwi 2012-04-06 07:29:55