問題タブ [model-view]
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.
qt - QListView はデリゲートのサイズヒントを使用しません
カスタム アイテム デリゲートをレンダリングする QListView があります。サイズを提供するためにデリゲートをオーバーライドsizeHint()
していますが、リスト ビューではこれが考慮されていないようです。以下は私が使用しているコードです:
CardItemDelegate.h
CardItemDelegate.cpp
そして、これが私がそれを使用している方法です:
アイテムはリスト ビューに正しく表示されますが、sizeHint()
呼び出されることはありません (チェックする呼び出しにデバッグ ステートメントを追加しました)。そのため、アイテムのサイズが正しくありません。何が問題なのか誰にもわかりますか?
database - Qt:他の複数のテーブルを指す外部キー列を持つテーブルからデータを表示する
私は、Thingsies
列、、、、id
のdata1
テーブルを持っています。必要な情報の種類によって異なるため、外部キー列だけでなく最後の 2 つの列が必要です。は、 テーブル内の を参照します。このテーブル自体には、 および という列があります。これらは、 、 などの他のテーブルの名前です。
の列は、 で指定された の を参照します。それら自体には、より多くのデータがあります。Thingies と. したがって、Thingies の行数は、すべての行の合計数です。otherTableId
otherTableRowId
Thingy
otherTableId
id
OtherTables
id
tableName
tableNames
OtherTable1
OtherTable2
otherTableRowId
Thingies
id
OtherTable
otherTableId
OtherTables
OtherTables
OtherTables
. (これはデザインが悪いのでしょうか?)
、、およびのQTableView
列を持つ にThingies を表示したいのですが、 はおよびからプログラムで生成されます。どのように進めればよいですか?id
data1
data2
data2
otherTableId
otherTableRowId
ありがとう。
c++ - QSqlTableModel のレコードを更新する
レコードを更新しようとしていますが、これがあります:
アプリケーションはエラーなしでコンパイルされますが、編集内容は保存されません。
c++ - モデル ビューの問題
file_dialog.getOpenFileNames(); を介してユーザーが選択したファイルを表示したいツリービューがあります。file_dialog は QFileDialog です。モデルクラスを作成しました:
また、このクラスをツリー ビューのモデルとして提供しました。このクラスのインデックス メソッドに問題があります。何を返せばよいかわかりません。
ユーザーが選択したファイルがツリービューに表示されるように機能させる方法を教えてください。
qt - Qt TableView オブジェクトで setSortingEnabled を呼び出すタイミングは?
から に切り替えましQTableWidget
たQTableView
。テーブルを埋める前にメソッドを呼び出すとsetSortingEnabled
、構築が本当に遅くなります。したがって、使用する場合はQTableWidget
、最初にテーブルを埋めてから を呼び出しますsetSortingEnabled
。
私の問題QTableView
は、テーブルがいっぱいであることを確認する方法がわからないことです。setSortingEnabled
パフォーマンスを落とさずに呼び出すタイミング。
私が処理できる信号、またはオーバーライドするスロットはありますか?
qt - Qtモデルビューを使用してアイテムの長方形のサイズを変更するにはどうすればよいですか
から独自のモデルのサブクラスを作成し、クラスをQAbstractItemModel
使用してモデルを表示しています。QTableView
私が表示している情報は <= 2 シンボルであるため、アイテムの長方形のサイズを変更する方法を知りたいです。
これを行う最善の方法は何ですか?
c++ - データベース接続が変更された後にQSqlTableModelを更新する方法が変更されました
から派生したクラスがありQSqlRelationalTableModel
ます。SQLiteデータベースを使用しています。そして、データベースファイルを変更する必要があります。古いデータベースファイルを閉じ、SetDatabaseName( "新しいファイルへのパス")を呼び出して、新しいデータベースファイルを開きます。モデルに対してselect()を呼び出すだけですが、falseが返されます。そして、setTable( "table")を呼び出し、その後select()を呼び出すと、すべてが機能します...しかし、テーブルの名前は同じです...
データベース接続が変更されたことをモデルに通知できる方法が見つかりませんでした。モデルに通知するためのより良い方法を知っていますか?
Ok。もう一度このトピックに戻りました。
dbを変更した後、同じテーブル名でsetTable()を呼び出して、テーブルモデルを再開する必要があります。そして、私はテーブルビューを再開するためのより良い方法を見つけられませんでした。
これにより、多くの不要なコード呼び出しが生成されますが、それ以外の場合、テーブルビューはテーブルモデルの変更(列数など)を認識しません。
QSqlTableModel
再初期化するためのより良い方法が見つかりませんでしたQTableView
。いくつかのアイデア?
qt - Qt: QSqlTableModel + QTableView が PostgreSQL と同期
一部のデータを格納するためのデータベース アクセス アプリを作成しており、モデル/ビュー アーキテクチャについていくつか質問したいと思います。
(使用: Qt 4.7.4、独自のビルド; PostgreSQL 9.0; ターゲット: WinXP、Win7 (32/64 ビット)) 最初に、私が達成しようとしていることと、現在どこにいるのかを説明させてください。
モデルに QTableView がバインドされた 2 つのページ (QStackedWidget に挿入されたサブクラス化された QWidget) があります。各ビューは、PostgreSQL サーバーのテーブルにバインドされています。項目の追加・編集・削除・並べ替え・絞り込みができます。各ページは 1 種類のユーザーだけが見ることができます。ロール Role1 と Role2 を呼び出しましょう。
モデルに接続されているすべての送信戦略は OnManualSubmit です。
(トランザクション分離レベル = シリアル化可能。) 2 人のユーザーが (たとえば) 同じ行を編集したい場合、「SELECT ... FOR UPDATE」クエリを実行したい - 誰かが何かを編集したときに、彼が自分の新しいもので変更されます(もしあれば、SVNのように)。しかし、QSqlTableModel の submitAll() メソッドしか表示されません。おそらく、シグナル beforeUpdate()、beforeDelete()、beforeInsert() をキャッチし、手動で「SELECT ... FOR UPDATE」を実行するのが 1 つのオプションです。もう 1 つの方法は、QSqlTableModel をサブクラス化することです。これを達成するためのクリーンで良い方法は何ですか?
各ページの QSqlTableView を定期的に更新したい (最大で 1 つのページが表示され、Role1 ユーザーは Page1 にのみアクセスでき、Role2 => Page2 も同様)。私の頭に浮かんだ最初のことは、QTimer を使用して QSqlTableModel の select() を手動で呼び出すことですが、... これがクールな方法かどうかはわかりません。
また、データベースへの接続が正常かどうかを定期的に確認したいのですが、 QTimer + QSqlDatabase::isOpen () で十分だと思います。
現在、2 つのテーブルには同じ主キーがあり、いくつかの列は同じです。Role1 を持つユーザーが Table1 の行を変更すると、Table2 の対応する列が自動的に変更され、その逆も同様です。Postgres でトリガーを作成する必要がありますか?
ところで、データベースは小さいです - 2 つのテーブルはそれぞれ約 3 ~ 4000 行で、列は 10 個までです (主に varchars、1 つのテキストと 2 つの日付列)。
お読みいただきありがとうございます。明けましておめでとうございます。:)
asp.net-mvc - MVC アプリケーションに国のリストを配置するためのベスト プラクティスの場所はどこですか?
重い環境のアプリケーションでは、Users、Locations、bla bla bla... があり、多くの状況で、国のリストを取得するサービスへの呼び出しを使用します。
これを実装するための「ベストプラクティス」または「適切な方法」はどこにありますか。このメソッドはいくつかの場所で呼び出され、多くのオブジェクトがList<CountryVO>
プロパティを持っています。
Razor ビューを使用することを特に考慮して、このプロパティを ModelViews に追加する必要があることがよくあります
ソリューションは、DAL / BLL / SERVICE / UI[s] アーキテクチャを使用しています。
実際の例:
クラス DeliveryZoneVO は Web サービスから取得されるため、1 つのプロパティは
クラス User には、クラスで提示されている DeliveryZoneVO のリストがあります。ここでの「問題」は、Web サービスからデータを取得するため、国の ID しか持っていないことです。
ビューに送信するコントローラーでデータを準備するとき:
しかし、userMV.user 内には、IdCountries を持つ DeliveryZoneVO オブジェクトのリストを持つ DeliveryZones があります。
ビューで、(たとえば)行うと:
国名を表示したいのですが、IDしかありません。だから私はどこかに参照が必要です..問題は、ベストプラクティスと見なされるデータをどこに配置する必要があるかにあります。
すべてのモデルビュー(例の場合、 UserModelView() のプロパティ Countries with a List に含まれていますか?
qt - QAbstractItemViewで操作されたモデルコンテンツを表示する方法
モデルの内容を表示するとがQSqlTableModel
あります。QTableView
モデルのサブクラス化とメソッドの再実装の編集をカスタマイズすることができましQStyledItemDelegate
た。setEditorData
setModelData
updateEditorGeometry
ここで行う必要があるのは、元のモデルに基づいたテキストをビューに配置することです。おもちゃの例を挙げましょう:
"10"
モデルに値を保存したとします。たとえば"10 kg"
、この値の操作されたバージョンをビューに表示しますが、モデルの実際のコンテンツは変更しません。
(これは単純化された例にすぎません。本当の問題は単に接尾辞を付けることではありません。)
これどうやってするの?ドキュメントで答えを見つけることができず、私の問題に似ていることがわかった2つの 例を見ると、星として描かれた新しい表現を扱っています(たとえば)。私が欲しいのはもっと簡単です:文字列を書き直せるようにしたいのです。
がらくた英語について申し訳ありません。