2012-12-20 3 views

답변

2

QTableWidget 클래스를 상속하는 고유 한 TableWidget 클래스를 정의하고 가상 keyboardSearch() 함수를 빈 구현으로 재정의해야합니다. 키보드 검색 기능이 비활성화됩니다.

class MyTableWidget : public QTableWidget 
{ 
... 
public: 
    virtual void keyboardSearch(const QString& search) {}; 
... 
}; 
+0

예, 이것이 필요한 기능입니다. 하지만 QTableWidget을 상속받지 않도록 노력했습니다. 지금은 Qt 디자이너와 테이블을 만들고 eventFilter를 설치합니다. 이벤트로 "keyboardSearch"를 잡을 수 있습니까? – norca

+1

그게 효과가 있지만 키보드 이벤트를 필터링하여 키보드 이벤트를 필터링하지 않으려는 QTableWidget의 다른 상태 (예 : 편집 상태)를 방해 할 수 있습니다. 결과적으로 옳은 일을하기 위해 꽤 복잡한 코드로 끝날 수도 있습니다. 그것을하는 가장 깨끗하고 안전한 방법은 keyboardSearch()를 오버라이드하는 것입니다. 간단합니다. 코드 예제에서했던 것보다 훨씬 많은 작업을 수행 할 필요가 없으며 일단 완료되면 Qt 디자이너에서 클래스를 사용할 수 있습니다. 이것은 Qt Designer의 위젯에서 QTableWidget을 마우스 오른쪽 버튼으로 클릭하고 "Promote to ..."를 선택하면 가장 쉽게 할 수 있습니다. –

관련 문제