問題タブ [qsqltablemodel]
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.
database - QTableView を使用した QSqlTableModel - 編集時に DB 定義の制約を考慮する
Oracle データベースを実装しました。アプリケーションの GUI と db のインターフェイスとして Qt を使用しています。データベースへの接続を設定し、QTableView にテーブルを表示すると正常に動作します。すべてのセルの編集は、通常、QSqlTableModel を使用してネイティブにサポートされています。ただし、関連付けられているデフォルトの ItemDelegate がセルを編集するときに、Qt はデータベースによって定義された制約を考慮していないようです。
外部キー値であるセルを編集すると、Qt ではキー値を入力できないだけでなく、これらの変更を送信して更新を実行するためにデータベースにクエリを実行するとします。設定された制約により、これは明らかに機能しません。ここで、ビューのデフォルトの ItemDelegate が編集時に有効な値をチェックすることを期待するには、質問が多すぎるかもしれないことがわかりました。
サポートされていない値を送信すると、実際の問題が発生します。ビューは引き続き値の変更を適用し、編集が有効であることを示します。エラーは処理されず、エラー メッセージも配信されません。そこから、制約に従う値への変更を元に戻すまで、ビューは一部の行の編集を許可しません。
データベースの制約に対して値の変更を検証するために、独自のitemDelegateをセットアップする必要があるとは信じがたいです。
この投稿に答えることができ、接続の設定方法を知っている人なら誰でもできると思うので、コードを少し分解します。
助けていただければ幸いです。ありがとう!
c++ - Qtテーブルモデルからツリーモデルへ
Qtには、プルしているsqliteデータベースがあります。テーブルの1つ(configTable)にQSqlTableModel
添付されています。
The table has a simple 2-column key/value structure. The keys are strings with folder-like values such as "general/name", "general/version", "foo/bar/baz", etc. Values are just arbitrary variants.
I'd like to display this data in an easier-to-browse QTreeView
instead of a QTableView
, as my key structure lends itself very nicely to that.
Before I go reimplementing classes and all sorts of crazy things - is there an elegant solution to this? And if I reimplement or extend classes, which ones should I look at?
Thank you.
c++ - スロットから qtableview qsqltablemodel にアクセスする
同様の問題について説明している多くのチュートリアル/説明を見てきましたが、この状況に適用する方法がわかりません。
私は Qt/C++ の初心者で、SQLite データベースに接続する単純な GUI アプリケーションを構築しようとしています。Qt Creator デザイナーを使用して構築された UI フォームがあります。
UI フォームには、テーブルに接続されている QTableView ウィジェットが含まれています - すべて正常に動作しているようです。
また、最終的にテーブルに行を追加するプッシュボタンもあります。「INSERT」クエリを実行するのではなく、代わりに QSqlTableModel によって公開されたメソッドを使用する必要があることを読みました。残念ながら、スロットから TableView データ モデルにアクセスできません。
これが私のコードです:
1) メインウィンドウ.h
2) main.cpp
3) メインウィンドウ.cpp
デバッグを実行すると、次のエラー メッセージが表示されます。
エラー: 'QAbstractItemModel *' から 'QSqlTableModel' への実行可能な変換がありません QSqlTableModel モデル = ui->myTableView->model();
私は問題を理解しています - QAbstractItemModel を SQLTableModel にキャストできることは知っていますが、これは適切な解決策ではなく回避策のようです。
上記のスロットから TableView にデータを供給する QSqlTableModel にアクセスできるように、オブジェクトを宣言/定義/インスタンス化する方法/場所を教えてください。
qt - QSqlTableModel - フィルターが機能していませんか?
QSqlTableModel を作成し、フィルターを設定し、QTableView を使用してフィルター処理されたデータのテーブルを表示しました。これは期待どおりに機能します...
ただし、テーブル ビュー内の列のすべての可視値の合計を計算しようとすると...
... TableView (フィルターが適用される場所) に表示されるアイテムだけでなく、テーブル モデルのすべてのエントリの合計を取得します。
TableView に表示されている値のみの合計を計算する sum() 関数を作成するにはどうすればよいですか?
回答ありがとうございます。
python - pyqt と qtsql を使用してマスター/詳細フォームを作成する
編集:新しいコードと明確な質問で再投稿: 以下のコードでは、適切に追加して保存できます。質問は:同じことをする必要がありますが、行の変更時にデータベースにデータを送信せずに、新しい連絡先を追加できる必要がありますレコード (マスター) と電話をテーブル (詳細) に挿入し、レコードごとに送信せずに挿入し、[保存] をクリックしたときにのみ送信します
--------------昔の質問 -------------------
QtSqlとPyQtを使用してマスター/詳細データを表示するフォームを作成したいので、以下のコードは私がやりたいことのサンプルです。連絡先の下に新しい電話を挿入して保存できるようにする必要があります
「PythonとQtを使用した高速GUIプログラミング」の本を読みましたが、その方法が見つからなかったので、この質問を完全な実例とともに投稿しました。これは、希望どおりに動作するように変更する必要があります
編集:実際、なぜ反対票を投じたのかわかりませんか?質問は明確ではありませんか?
c++ - Qt: サーバーからクライアントに SQLTableModel を送信する方法
私はクライアントサーバープロジェクトに取り組んでいます。クライアント側には、さまざまなビュー (QTableView、QListView) を含むいくつかの GUI ウィンドウがあります。次の方法を使用して、サーバーにメッセージを送信できます。
しかし、私の問題はサーバー側にあります。私のサーバーはメッセージを受け取り、メッセージを読んでSQLデータベースから取得するために必要な情報を決定し、モデル(QSqlTableModel、QSqlQueryModel)を返すクエリを実行しますが、それぞれのモデルをクライアント。
このモデルをサーバーに送り返す方法はありますか?
sql - SQL Oracle コマンド「右括弧がありません」
このテーブルを作成するたびに、右括弧がありませんと表示されます。誰かが私が間違っていることを確認してください。ありがとうございました