2012-04-05 7 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

관련 문제