N8(およびC7)を対象としたプログラムのタッチ入力を取得しようとしていますが、タッチポイントはQTouchEvent :: touchPoints()を使用します。プログラムは次の行でクラッシュ:今すぐQタッチポイントが作成されていないためのリスト "データ中断例外が発生しました"
bool GLWindow::event(QEvent *event)
{
switch (event->type()) {
case QEvent::TouchBegin: {
QList<QTouchEvent::TouchPoint> touchBeginPoints =
static_cast<QTouchEvent *>(event)->touchPoints();
foreach (const QTouchEvent::TouchPoint &touchBeginPoint, touchBeginPoints)
{
float touchBeginX = touchBeginPoint.pos().x();
float touchBeginY = touchBeginPoint.pos().y();
qDebug() << "touchBeginPoint := " << touchBeginX << ", " << touchBeginY;
}
break;
}
case QEvent::TouchUpdate: {
// same as touch begin: getting touch point
break;
}
case QEvent::TouchEnd: {
// same as touch begin: getting touch point
break;
}
default: {
qDebug() << "Goodbye";
return true;
}
}
return true;
}
、私は前にコンテナで働いたことはない
- :
Thread has crashed: A data abort exception has occurred accessing 0xee
オーバーロードされたイベントの機能は次のようになります。しかし、プログラムの別の部分でQListを作成して使用するとうまくいきます。 .proファイルに何かを含めるべきですか? (ほとんどの問題がこれに関して私と結びついているようですね)
- QtとSymbianの例外については読んでいますが、そのほとんどを得ることはできません。しかし、私は3Dオブジェクトのテクスチャ以外のネットワーキングやリソースベースのI/Oや操作をしていません。プログラムを実行しているときにメモリ割り当てが問題を引き起こしている可能性はありますか?
基本的に私はタッチポイントを印刷しようとしています。しかし、私はQListを作成できない理由については無知です。コードは正常にコンパイルされます。私はベストを尽くしましたが(成功しなかった)、タッチポイント(QListを必要としないもの)の画面座標を取得する他の方法はありますか?コメントは大歓迎です。
qt-project.orgから
まあまあですが、static_cast <>をqobject_cast <>に置き換えるとどうなりますか? – teukkam
@teukkamイベントはオブジェクトではありません...多分dynamic_cast <> ... – UmNyobe
@teukkamこれは、 'qobject_cast(QEvent *&)'の呼び出しでエラーが発生します。私もdynamic_cast <>を試しました、それは同じ結果を与えます。ありがとう。 –