問題タブ [qabstracttablemodel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
544 参照

c++ - Qt:同じウィンドウからのドラッグと他のウィンドウからのドラッグを区別する

QTableView::setModel() への呼び出しを使用して、QAbstractTableModel から継承する独自のカスタム モデルを設定する QTableView を使用しています。

テーブル ビューはドラッグ アンド ドロップをサポートしています。私のモデル クラスは mimeData() と dropMimeData() を再実装しています。アプリケーションの 2 つのインスタンス間でも、項目をドラッグ アンド ドロップできます。

私が達成したいのは、dropMimeData() は、ドロップされた要素が同じウィンドウからのものか、アプリケーションの別の実行中のコピーの別のウィンドウからのものかを検出する必要があるということです。また、ケースごとに異なる動作をする必要があります。

dropMimeData() の引数 Qt::DropAction アクションを使用するのが最も自然なことのように見えましたが、それは機能しません: 元のウィンドウに関係なく、常に Qt::CopyAction または Qt::MoveAction であり、defaultDropAction にのみ依存します。 QTableView。

これは可能ですか?

0 投票する
1 に答える
449 参照

python - QTableview(QAbstractTableModel)内のQProgressBar(QitemDelegate)を更新する方法(setvalue、sorting、editing、background color)

私は Python の NEWBIE 開発者です。これは私の最初の Python スクリプトです。QProgressBar を QTableview (QAbstractTableModel) に QItemDelegate として追加したところ、機能しました。QProgressBar は表示されましたが、QTableview を編集またはソートすると自動的に更新されません。QItemDelegate の Background color 、alignment 、 edit は役割に従っていませんか? 何か案が ?setmodeldata または seteditordata を使用する必要がありますか? この場合の例はありますか?

これが QAbstractTableModel のクラスです

ここにデリゲートコードがあります:

0 投票する
0 に答える
157 参照

c++ - QTableView 通知ユーザー入力

QTableView から派生したクラスを作成しました。別のスレッドからデータを更新し、機能します。

ここで、ユーザーがテーブルに表示されるデータを変更できるようにしたいと考えています。

flags(const QModelIndex &index) const私が使用する QAbstractTableModel をオーバーライドすることで、セルをクリックして値を挿入できます。

私の問題は、ユーザーがセルの編集を終了したときに通知できないため、セルで編集が終了すると古い値が表示されることです。

QTableWidget にcellChangedは、私が望むことをしているように見えるシグナルがあることがわかりました。QTableView と QAbstractTableModel で同じことを行うにはどうすればよいですか?

0 投票する
1 に答える
511 参照

qt - Qt: ビューを作成して可視データを更新する

私のプログラムではQTableViewQAbstractTableModel接続されています。モデルにデータが含まれていません。ビューが表示するデータを必要とする場合、それを呼び出しQAbstractTableModel::data、モデルは別のオブジェクトを使用してデータを取得して返します。ある時点で、そのオブジェクトのデータが変更されます。モデルは何が変更されたかわからないためdataChanged、呼び出されません。

データの目に見える部分 (ビューに表示されている) だけが更新される必要があります。モデルから新しいデータを取得する必要があります。update()ビューの呼び出しまたは関数によってそれを達成しようとしてrepaint()いますが、役に立ちません。paintEventtableviewの呼び出しを考えているのですが、呼び出されません。

ビューの更新をデータの可視部分にするにはどうすればよいですか? 巨大なデータ全体を更新したくありません。