0
タイトルバーには、コンテキストヘルプボタンと閉じるボタンの2つのボタンがあります。カスタムアクションを実行するために、ユーザーがコンテキストヘルプボタンをクリックしたことをどのようにして知ることができますか? (私は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
}
};
クロスプラットフォームは動作しません。 – olya
このヘルプボタンはクロスプラットフォームではないため、プラットフォーム固有のコードを記述する必要があります。 – Andrii
答えをありがとう。これは標準の 'qWindowsWndProc'が' wParam == SC_CONTEXTHELP'の 'WM_SYSCOMMAND'メッセージを' EnterWhatsThisMode'イベントに変換してqAppに送信するのを助けました。 – olya