問題タブ [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 - モデルごとに QTableView 列の幅を設定するには?
QTableView
のサブクラスをQAbstractTableModel
モデルとして使用しています。data()
サブクラス化されたモデルで を実装することによりheaderdata()
、データ、ヘッダー値、フォントなど、テーブルの多くのプロパティを制御できます。
私の場合、モデルで各テーブル列の幅を設定したいと考えています。これはどのように行うことができますか?
qt - QAbstractListModelsのテスト
すでに実装したQAbstractListModelsをテストしたいのですが、QtラボのModelTestを使用するか、QTestLibを使用して独自の単体テストを作成することをお勧めします。また、誰かが実際にModelTestが何をするのか、それをどのように使用するのか、またはこれ以外の良いチュートリアルを教えてもらえますか?
qt - ファイルシステムを表示するためのチェックボックスを備えたQListView
QListViewのアイコンとチェックボックスで指定されたパスでディレクトリのリストを作成し、マークされたフォルダの名前をプログラムに送信する必要があります。リストディレクトリの場合、コードを使用します。
チェックボックスを追加し、ボタンを押した後に送信するにはどうすればよいですか?
ありがとう。
qml - ListView のハイライト項目が表示されない
ListView で現在選択されている項目を強調表示しようとしています。以下は私が使用しているコードです。何らかの理由で、このアプリケーションの別の ListView では同様のコードが完全に機能しますが、ここでは SelectedRectangle 項目が表示されません。
SelectedRectangle.qml
解決策: deviceTreeDelegate の四角形はデフォルトで白で、選択用の四角形と重なっていました。透明に設定されたプロパティを使用して、選択範囲が見えるようにします。
qt - Qt でのリストとハッシュの組み合わせ
各要素に特定のインデックスがあり、キーを使用して取得できるデータ構造が必要です。
Qt でモデル ビュー プログラミングを行うには、そのデータ構造が必要です。一方では、View は特定の行の要素を要求します。一方、モデルは特定のキーで要素を挿入および変更したいと考えています。どちらの操作も O(1) で実行する必要があります。
これが私が欲しいものの例です:
ビューには次のものが表示されます。
モデルは以下を見ます:
私の考えは次のとおりQList<Value>
ですQHash<Key, Value*>
。ハッシュは、対応する要素が格納されているリスト内の場所を指します。これは、値を挿入/編集するコードです。
問題は、このコードが常に機能するとは限らないことです。期待どおりに動作することもありますが、データ構造が一貫していないことがあります。
QListが新しいスペースなどを割り当てるため、メモリを介してコンテンツを移動するためだと思います。
重要な操作 (予想される O(1) で実行する必要があります):
- キーと値のペアを挿入します (リストの最後に値を追加します)
- キーを使用して値を検索および変更する
- インデックスを使用して値を検索および変更する
可能でなければならないが、一定の実行時間で可能である必要はないその他の操作:
- インデックスによる要素の削除
- キーによる要素の削除
- 配列の途中に挿入
- 配列内の要素を入れ替える / 配列をソートする
- キーのインデックスを取得する
私の2つの質問は次のとおりです。
- 私が望むことをするデータ構造はありますか?
- そうでない場合、どうすればこれを修正できますか、またはより良いアプローチがありますか?
object - 1つのmodelAndViewオブジェクトを別のModelAndViewオブジェクトに追加する方法
1つのmodelAndViewオブジェクトを別のModelAndViewオブジェクトに追加する方法。1つのModelAndViewオブジェクトmv1があり、別のmodelandviewオブジェクトmv2値をmv1に追加したいのと同じように。mv1.addObject("mv1",mv2);
qt - ソースモデルの行の動きを正しく追跡することは、QSortFilterProxyModel の契約の一部ですか?
行の動きが装飾されているソースモデルがあるとします
(したがって、 を出力しlayoutChanged()
ます)。
次に、ソース モデルの行をフィルター処理するように設定されたQSortFilterProxyModelインスタンスがあります。ソースからわかるように、ソース モデルのレイアウトの変更は、プロキシ モデルのそれぞれの再調整につながります (layoutChanged()
シグナルをリッスンし、適切に調整するため)。
しかし、ドキュメントは次のようにしか言いません:
注: デフォルトでは、元のモデルが変更されるたびに、モデルはデータを動的に再ソートおよび再フィルタリングしません。この動作は、dynamicSortFilter プロパティを設定することで変更できます。
dynamicSortFilter : bool このプロパティは、ソース モデルの内容が変更されるたびに、プロキシ モデルが動的に並べ替えおよびフィルター処理されるかどうかを保持します。
私の質問:
- (1)「元のモデルが変更されるたび」には、「行が元のモデル内で移動されたとき」が含まれますか
- (2) その場合、プロキシ モデル内のアイテムの順序は、ソース モデルと同じであることが保証されています。
- (3)開発中に上記の動作に依存した経験のある人はいますか?
- (4) [追加の質問] QSortFilterProxyModel サブクラス内でソース モデルの行(AboutToBe)Moved シグナルを追跡し、そこで beginMoveRows/endMoveRows を呼び出すと (適切にマッピングされた行インデックスを使用して)、プロキシが台無しになるということは正しいですか? beginMoveRows/endMoveRows 呼び出しは、onLayoutChanged ソース モデルのシグナルを処理するときに QSortFilterProxyModel によって既に調整された永続的なインデックスを調整しようとしますか?
ありがとう。
android - AndroidでpresentModalViewControllerを使用するにはどうすればよいですか?
現在、私はAndroidアプリケーションで作業しています。iphoneアプリケーションでは、presentModalViewControllerを使用して画面の下から上にビューをアニメーション化します。Androidアプリケーションでも同様です。AndroidでpresentModalViewControllerコントロールを使用するにはどうすればよいですか。これを追加することは可能ですか?インターネットを参照していますが、MVCパターンしかありませんので、助けてください。
前もって感謝します
iPhoneアプリでのpresentModalViewControllerの使用:
qt - イメージの「ノイズ」
Qt を使用してデータ ファイル管理アプリケーションを作成しています。ダイアログ Model-View QTreeView を使用して、ツリー構造を表示します。Win# では問題なく動作します。Linux では、次の「ノイズ」が発生することがあります。
http://imageshack.us/photo/my-images/268/bugloader.jpg/
ノイズは、ユーザーが複数 (4 つ以上) の拡張レベルを開いた場合にのみ表示されます。誰でも私を助けることができますか?
matrix - OpenGLES2.0Modelviewマトリックス2D
2D目的(正投影)でOpenGL ES1.1から2.0に移行しますが、変換の適用方法(行列の乗算順序)を理解するのに少し問題があります。Z軸での回転と、常に同じ値であるXとYでのスケーリングのみが必要なので、これにより、処理が大幅に簡素化されます。完璧に機能する私の現在の方法(ES1.1)には、オブジェクトと同じ絶対座標空間に配置された仮想カメラがあります。
各フレームの開始時に、最初にを呼び出してカメラの変換を行います
オブジェクトの場合、次のようになります(テクスチャと描画の呼び出しを省略します)。
ES2.0でこれと同じ機能を取得しようとしていますが、すべてのマトリックス操作を手動で実行する必要があります。
このリンクから、乗算の適切な順序は((Scale * Rotation)* Translation)である必要があることがわかりました。
その後、2Dの方がはるかに単純なので、これらすべてを組み合わせた単一の行列式を思いつきました。正射影行列も含めました。テストシェーダーの場合、私はこれを持っています:
これは、あらゆる自由度に対して想定されているのと同じように機能します。しかし、カメラの組み込み方がわかりません。シェーダーでの行列の乗算の順序がgl呼び出しの順序と一致しないため、カメラ呼び出しを乗算に変換する方法がわかりません。最初は、カメラの個別の変換マトリックスを計算して、次のように最終的な位置を設定しようとしていました。
カメラマトリックス自体の順序に関係なく、これは正しいとは思いません(私は複数の方法を試しましたが、どれも正しく機能しませんでした)。すべてのカメラとオブジェクトのmodelview変換は、単一のmodelviewマトリックスにコンパイルする必要があると思います(各マトリックスに最後の行列を掛け、カメラの変換から始まり、オブジェクト、そして明らかに特定の順序で)。この操作の順序は、特にES1.1で正しく機能していたものと一致しないため、私が混乱しているものです。
誰かが正しい順序を説明できますか、そしてなぜgl呼び出しが実際の乗算と異なるのですか?