2014-07-08 7 views
1

내 응용 프로그램이 빈 테이블로 시작하고 아이템 추가 방법을 변경하려고합니다. 하나는 모든 셀이 차지하지 않는 테이블의 사용하지 않는 영역 (또는 "배경")을 두 번 클릭해야합니다. 셀을 두 번 클릭하면 기본 동작이 필요합니다.QTableView의 사용되지 않은 영역에서 두 번 클릭합니다.

나는 다시 구현 내 TestTable 클래스 QAbstractScrollArea::mouseDoubleClickEvent() 방법으로이 작업을 수행하는 방법을 발견했습니다

#include <QMouseEvent> 
#include <QTableView> 

class TestTable : public QTableView 
{ 
    Q_OBJECT 
    signals: 
    void backgroundDoubleClickEvent(void); 
    protected: 
    void mouseDoubleClickEvent (QMouseEvent* e) 
    { 
     if (indexAt(e->pos()).isValid()) 
     { 
      QTableView::mouseDoubleClickEvent(e); 
     } 
     else 
     { 
     e->accept(); 
     emit backgroundDoubleClickEvent(); 
     } 

    } 
}; 
  • 이 작동을하지만, QTableView를 서브 클래 싱하지 않고이 일을 더 우아한 방법은 무엇입니까?
  • 현재 구현의 제한 사항을 알지 못합니다. 명백한주의 사항이 있습니까? 당신이 QTableView를 서브 클래 싱하지 않으려면

답변

0
+0

내가, 감사 것을 시도 할 것이다 시도! 좀 더 복잡해 보입니다. 더블 클릭을 잡는 방법을 찾아야하지만 완전히 벗어나지는 않습니다. – Christoph