2017-10-09 1 views
0

제목 표시 줄의 문맥 도움말 버튼과 닫기 버튼이라는 두 개의 버튼이있는 대화 상자가 있습니다. 사용자 정의 액션을 수행하기 위해 사용자가 컨텍스트 도움말 버튼을 클릭했는지 어떻게 알 수 있습니까? (VS 대화 상자에서와 같이 브라우저에 도움말 페이지를 표시하고 싶습니다.)내 맞춤 동작과 함께 상황에 맞는 도움말 버튼을 클릭하여 연결하는 방법은 무엇입니까?

Qt에서 이와 비슷한 질문을 발견 했습니까? Context help button behaviour on CPropertySheet

업데이트. 는 이제 다음과 같은 코드를 사용 :

class MyHelper : public QObject 
{ 
    Q_OBJECT 

public: 
    explicit MyHelper(QObject * parent = nullptr) { 
     qApp->installEventFilter(this); 
    } 

protected: 
    virtual bool eventFilter(QObject * obj, QEvent * ev) override { 
     if (ev->type() == QEvent::EnterWhatsThisMode) { 
      showHelp(QApplication::activeWindow()); 
      return true; 
     } 
     return QObject::eventFilter(obj, ev); 
    } 

private: 
    void showHelp(QWidget * sender) { 
     //TODO 
    } 

}; 

답변

1

내가 QWidget::nativeEvent 당신이 찾고있는 것을 믿습니다.

+0

그리고 어떤 교차 플랫폼도 작동하지 않습니까? – olya

+0

이 도움말 버튼은 플랫폼 간 플랫폼이 아니므로 플랫폼 별 코드를 작성해야합니다. – Andrii

+0

답변 해 주셔서 감사합니다. 그것은 표준'qWindowsWndProc'가'wParam == SC_CONTEXTHELP'을 가진'WM_SYSCOMMAND' 메시지를'EnterWhatsThisMode' 이벤트로 변환하고 그것을 qApp로 보내는 것을 발견하는 것을 도왔습니다. – olya

관련 문제