C++ Qt Widget 上でのキーボード操作
QListBox などの Widget 上で、キーボードが推された場合の処理です。
簡単に考えるとコールバック系があるのかなと思ったのですが、
どうも Widget を継承したクラスで、関数をオーバーライドしてあげる必要があるみたいです。
・EmacsライクなWidgetを作ろう on Qt
http://blog.goo.ne.jp/hiroyuki_kiitos
ここを参考にこんな感じに。
// 継承したクラスでキーを受け取り
class CListWidget : public QListWidget {
protected:
//! キーイベント
virtual void keyPressEvent( QKeyEvent *event )
{
switch( event->key() ){
case Qt::Key_Delete:
break;
default:
break;
}
}
}
こんな感じでオーバーライドしてあげることで、
そのウィジェットでキーが押されたときの処理を実行することができます。
この他にもキーが離されたときや、マウス操作関係もあるようです。
Qt 自体、Widget を継承してカスタマイズして作っていくのが基本のようですね。
簡単に考えるとコールバック系があるのかなと思ったのですが、
どうも Widget を継承したクラスで、関数をオーバーライドしてあげる必要があるみたいです。
・EmacsライクなWidgetを作ろう on Qt
http://blog.goo.ne.jp/hiroyuki_kiitos
ここを参考にこんな感じに。
// 継承したクラスでキーを受け取り
class CListWidget : public QListWidget {
protected:
//! キーイベント
virtual void keyPressEvent( QKeyEvent *event )
{
switch( event->key() ){
case Qt::Key_Delete:
break;
default:
break;
}
}
}
こんな感じでオーバーライドしてあげることで、
そのウィジェットでキーが押されたときの処理を実行することができます。
この他にもキーが離されたときや、マウス操作関係もあるようです。
Qt 自体、Widget を継承してカスタマイズして作っていくのが基本のようですね。
| Qt | 03:18 | comments:0 | trackbacks:0 | TOP↑