2

タッチスクリーンを備えたデバイス用の組み込みアプリケーションを開発しており、QTableView アイテムのシングルクリックと長押しを個別に処理する必要があります。シングル クリックで編集ダイアログが開き、長押しで項目のみが選択されます。問題は、Qt に「押された」信号しかないことです。長押しを処理する正しい方法がわかりません。誰かがそれを行う方法を提案できますか?

4

2 に答える 2

1

ビューのviewport()ウィジェットにイベント フィルターをインストールし、そのマウス イベントを処理します。view->indexAt()どの項目がクリックされたかを調べるために使用します。イベント フィルタも参照してください。

于 2013-07-10T08:30:14.043 に答える
1

QTableView を直接使用する代わりに、サブクラス化してから仮想関数を実装します。

void mousePressEvent(QMouseEvent *)
void mouseReleaseEvent(QMouseEvent *)

次に、リリース イベントの前に特定の時間が経過したかどうかを確認するタイマーを作成して、イベントの処理方法を決定できます。

于 2013-07-10T07:50:19.210 に答える