Qt eventFilterでイベントを振り分ける
ロゴ
「ソフトウェア開発」に関連する記事一覧

Qt eventFilterでイベントを振り分ける

2013/08/12
Qt C++ 

QMainWindowでkeyPressEvent()を使ってキー入力を取得しようとすると、Qt::Key_Right、Qt::Key_Leftなどのキーが取れなかったので、取得する方法がないか探してみました。どうやらinstallEventFilter()を実行してから、eventFilter()を使えば発生したイベントが全部取得できるようだということがわかりました。

下記コードのような感じです。


class MainWin: public QMainWindow
{
public:
    MainWin();
private:
    virtual bool eventFilter(QObject *obj, QEvent *event);
};

MainWin::MainWin()
{
    qApp->installEventFilter(this);
}

bool MainWin::eventFilter(QObject *obj, QEvent *event)
{
	switch(event->type())
    {
    case QEvent::KeyPress:
        printf("Key %d pressed\n", static_cast<QKeyEvent*>(event)->key() );
        break;
    default:
        break;
    }
	return false;
}

下記ページのサンプルが参考になりました。

http://nonspam.blog.shinobi.jp/qt-windows%E3%83%A1%E3%83%A2/eventfilter
%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F


  このエントリーをはてなブックマークに追加    

<<「ソフトウェア開発」の記事一覧に戻る

関連記事

にほんブログ村 ゲームブログ ファイアーエムブレムへ にほんブログ村 デザインブログ コンピュータグラフィックスへ

0.022 sec
Copyright(C)2006-2019 puarts All Rights Reserved