問題タブ [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 に答える
330 参照

sql - データを探しているQt QAbstractModel

私は自分自身QAbstractTableModelをSQLiteに接続しています。データベースからデータを取得し、列名でリストに書き込みます。データを探しているときに、SQL クエリでテーブルを処理したくありません。

についてどう思いますか?それは正常ですか?

アドバイスをお願いします。

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

qt - データの準備ができていない Qt TableModel

したがって、ダイアログに QTableView があり、サブクラス化された QAbstractTableModel と、 を使用して表示する画像の URL のリストがありますQt::DecorationRole。再実装されたMyModel::data(const QModelIndex &index, int role) constメソッドによって呼び出されるデータ。を使用して画像をロードできますQNetworkAccessManager。問題は、特定のセルに対して data-method が呼び出される前に画像を取得する方法、または画像の準備ができたときにデータを呼び出す方法です。アクセス マネージャーが読み込みを完了すると、スロットを呼び出すことしかできません。

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

qt - QAbstractTableModel内にデータを設定する方法

Qtでテーブルを実装する必要があります。

このモデルを使用するQTableViewを使用して、QAbstractTableModelを提訴すると思います。

モデルのrowCount()、columnCount()、およびdata()関数を編集する必要があることを理解しています。

ただし、data()関数がデータを取得できるように、モデル内にデータを正確に設定する方法がわかりません。

この目的のためにsetData()関数が提供されていますか?テーブルを編集可能にしたくないので、パラメーターとしてEditRoleを使用するのを見てきましたが、これは必要ありません。

では、data()関数を使用して、モデル内にデータを「設定」する、またはモデルが取得するデータを取得するにはどうすればよいですか?

また、data()関数はどのように呼び出されますか?つまり、誰がそれを呼び出し、どこで呼び出す必要がありますか?

これを手伝ってください。

ありがとう。

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

qt - QItemDelegate: 不要な QCheckBox のペイント

QAbstractTableModel を継承する編集可能なモデルがあります。それに合わせてカスタムデリゲートも用意してください。これは私の最初の編集可能なモデルで、何かが足りないと思います。私は Nokia で見つかった例にほぼ従っています。私のモデルは、データが flags() を介して編集可能であることをデリゲートに伝えます。これを行うと、セルに QSpinBox が描画されます。

基礎となるモデルは単純な std::map です。キーは日数、値はレートです。
通常、編集可能なセルに描画されるのは QCheckBox ですが、ゴースト アウトされてからデータが表示されます。値をダブルクリックすると、QDoubleSpinbox に基づくカスタム ウィジェットであるエディターが表示されます。

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

pyqt4 - QTableView で選択したセルのレンダリングの問題

カスタムQTableViewとカスタムがありますQAbstractTableModel。ビューでは、単一の選択のみが許可されます。いくつかの条件下で、選択したセルの背景色をカスタマイズしようとしていますが、うまくいきません。dataモデルのselectionChanged方法とビューの方法を組み合わせることでそれができると期待していました。たとえば、選択したセルが特定の行に一致するときに、そのセルの色を変更したいとします。selectionChangedメソッドの私のコードは次のとおりです。

dataメソッドの単純化されたコードは次のとおりです。

選択されていないセルの背景は、予想どおり緑色です。奇妙なことに、一致する行のセルを選択すると、メッセージ++++ displaying selectedが印刷されますが、選択したセルの背景が黄色ではなくシステムのデフォルトの背景になります。ここで重要/明白な何かが欠けているに違いありませんが、それが何であるかはわかりません。

アップデート

カスタム デリゲートを使用してそのメソッドを実装することで目標を達成できることはわかってpaintいますが、上記のコードが失敗する理由を知りたいです。

0 投票する
3 に答える
4415 参照

qt - qtableviewで複数の行を更新するにはどうすればよいですか

カスタマイズされた qtablemodel と qtableview があります。ユーザーが複数の行を選択し、この行内の値の 1 つを変更できる機能を追加したいと思います。彼は実際にすべての行でこの値を変更します。たとえば、テーブル全体を選択したときに、テーブル内のすべての人物の名前をアリスに変更できます。

これを達成するのを手伝ってもらえますか?

モデルの setData を異なる行に対して複数回トリガーする方法がわかりません。または、モデル内の setData 関数が呼び出される前に、qtableview がモデルに送信するシグナルを教えていただけますか?

事前にどうもありがとうドニー

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

python - QAbstractTableModelのDBへの変更をどこにコミットしますか?

python2、qt、elixirを使ってアプリを書いています。アプリはsqlitedatabateからelixirオブジェクトのリストにデータをフェッチし、データを処理するために作成したQAbstractTableModelサブクラス内の変数に保存します。

メモリ内のデータを問題なく表示および更新できます。ただし、(elixirを使用して)データベースファイルへの変更をコミットするには、関数session.commit()を呼び出す必要があります。

私の質問は、それでは、どこでそれを呼ぶのですか?データが変更された後に発行されるシグナルがQAbstractTableModelにありますか?

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

python - テーブルのcentainセルで必要なデータを取得できないのはなぜですか?

基本的に、最初の関数では、マウスを使用して選択したセルを取得し、data()メソッドを使用してそのセルからデータを取得し、最初の関数で表示することができます。

ただし、セルを選択すると、その行の最初のセル(最初の列)のデータが表示されるように少し変更したいと思います。選択したセルのindex(currentCell)がすでにあるので、新しいModelIndexオブジェクトをインスタンス化して、選択したインデックスをそれに割り当てます。次に、オブジェクトの列を0に変更します。最後に、data()mtohodを使用して新しいオブジェクトでデータを取得したいのですが、何もありませんでした。nullです。多くの時間を費やしていて、何であるかわかりません。問題。助けて読むためにいくつかの努力を提供してくれた人に感謝します:)

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

qt - QTableViewのセルの内容を中央揃えにします

私はQTableViewを持っています。

このビューのすべてのセルの内容を中央に揃える方法はありますか?

私はデリゲートを使用していません。AbstractTableModelにモデルとして追加されるのは単なるQTableViewです。

各セルのコンテンツを中央に揃えるにはどうすればよいですか?

ありがとう。

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

qt - より多くの行で動的にQTableViewを更新する

QTableViewから派生したモデルを使用する、がありますQAbstractTableModel

モデルはいくつかの行から始まり、データを適切に表示します。

モデルにはタイマーも接続されており、有効期限が切れると、行と列の数を取得し、そのインデックスを作成し、dataChangedシグナルを送信して、テーブルの動的な内容を更新します。

問題は、表示されるはずの行数が変わるときです。

その場合、番号を変更して新しいインデックスを取得しても。行の数を増やし、テーブルを更新しても、新しい行は表示されません。

おそらく、その理由を特定しました。最初に2行あり、次に5行が表示されることになっているとします。タイマーの有効期限ロジックで、新しい行数を使用して新しいインデックスを作成するように依頼しましたが、dataChanged()シグナルは、最初にすでに挿入されている行のデータのみを変更します。新しい行は表示されません。

これはモデルの私のコードです。

新しい行が追加されるようにビューを変更する方法を提案してください。

ありがとう。