ロゴ メインコンテンツへ
RSSフィード
「ソフトウェア開発」に関連する記事一覧

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

2013/08/12
(この記事の文字数: 345)
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 件)



コンテンツロード: 0.0091 sec
Copyright(C)2006-2024 puarts All Rights Reserved