■
勘違い
QTimerとQKeyEventをそのまま組み合わせると、キーリピートレートがOS依存になってしまうっぽい。
(原因は不明。イベントハンドラの競合?)
ゲームとかリアルタイム処理をやる場合は、これではちょっと困ってしまう。
解決方法として、再描画関数 update( ) をQTimerを使わず呼び出す(といい、と思われる)。
一番な簡単な実装例は、
void Hoge::paintEvent(QPaintEvent * /* event */) { /* 描画処理の記述 */ ・・・ update(); }
みたいな感じで、描画関数の終了直前に update( ) 関数を呼び出すようにする。
update( ) は速攻で再描画をする関数ではなく、Qtがメインイベントループから返ってきたタイミングで再描画をする関数なので、
これで無限ループに陥ることはない。
(これも処理レートがCPU依存になってしまうので雑な方法には違いが、少なくともぐりぐり動くようにはなる。)