2012-10-16 2 views
0

많은 레이아웃과 위젯이있는 응용 프로그램 창이 있습니다. 스크롤바를 사용하여 스크롤 영역을 만들었습니다. scrollareaup 및 scrollareadown 슬롯을 만들 수 있습니다. 그러나 모든 응용 프로그램에 대해 wheelEvent를 만들면 스크롤 영역이 아닌 항목 int app에서만 작동합니다. 방금 시도 할 때 :Qt wheelEvent 전체에서

void TContic_win::wheelEvent(QWheelEvent *event) { 
    cout << "-" << endl; 
} 

어떻게 고칠 수 있는지 잘 모릅니다. (위젯은 부모로 Your_Scrol_Widget이있는 경우 경우) 당신은 같은 것을 할 수

bool TContic_win::eventFilter(QObject *obj, QEvent *e) { 

    if (isChildOfScrollWidget(obj) { if (e == wheel) scroll Up or Down } 

} 
+0

질문을 여러 번 읽었지만 완전히 이해하지 못했습니다. 스크롤바를 숨기고 싶지만 마우스 휠로 스크롤 영역을 스크롤 할 수 있습니까? – leemes

답변

0

:

void TContic_win::wheelEvent(QWheelEvent *we) 
{ 
    if (this->childAt(we->pos())->parent() == Your_Scrol_Widget) 
     qDebug() << "-" ; 
} 

당신은해야합니다 가지고 생각 내 생각은 같은 것입니다.

+0

mainwindow에 스크롤바가 있고 mainwindow 클래스에서 wheelEvent를 사용하기 때문에 작동하지 않습니다. 이 이벤트는 스크롤 영역을 제외하고는 어디에서나 포착됩니다. – Lodhart

0

죄송합니다. 내 실수 야. 잘못된 이벤트 필터가 있습니다. 나쁜 조건에서 'return true'를 사용 했으므로이 실수로 인해 다른 이벤트를 항상 무시하고 내 이벤트 필터가 하위 항목보다 작동하지 않습니다. 그건 그렇고, 당신의 노력에 감사드립니다.