問題タブ [qabstractlistmodel]

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 投票する
1 に答える
5635 参照

qt - QAbstractListModel insertRows が正しく機能しない

QAbstractListModel のサブクラスがあり、このモデル サブクラスを GridView にアタッチしました。サブクラスから行を削除すると、GridView は更新されますが、モデルに行を挿入すると、GridView は更新されません。removeR を実装しました

QAbstractListModel の非常に単純なサブクラスがあり、それに QML GridView をアタッチしました。GUI に [追加/削除] ボタンが 2 つあります。Add を押すとモデルに文字列が追加され、GUI が更新されます。remove を押すと、最後の文字列がモデルから削除され、GUI が更新されます。私の問題は、挿入される行が1つだけ追加され、削除してもGUIで何も起こらないことです。私のモデルサブクラスとQMLファイルの実装が与えられています。

名前モデル.cpp

main.qml

beginInsertRows / endInsertRows および beginRemoveRows / endRemoveRows を呼び出していますが、機能していないようです。他の同様のスレッドで提案されているように、begin / end InserRows の後に layoutChanged / dataChanged も呼び出しましたが、効果はありません。

実際、私は実際のプロジェクトでほぼ同じ問題を抱えています。この beginInsertRows などの問題点をテストするために、このアプリケーションを作成しました。

どんな助けでも大歓迎です。

Farrukh Arshadさん、よろしく。

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

qt - QGraphicsView オブジェクトの QListView を作成します

各スライドを表すタイルの縦方向のリストを表示する PowerPoint で表示されるものと同様の外観を与える項目の縦方向のリストを作成できるようにしたいと考えています。

QListViewaと a を併用するのQAbstractListModelが正しい方法だと思います。私のQAbstractListModelサブクラスにはQListofが含まれていQGraphicsViewsます。したがって、各タイル (またはスライド) はQGraphicsView. 私はインターネットで同様の例を見つけるのに多くの時間を費やしました.Qtの例も使用していますが、あまり運がありません.

これが私のモデルクラスです...

では「ADDING」メッセージをaddgvw取得できますが、「HERE」メッセージは で取得できませんdata

これが私のモデルクラスの使い方です...

ウィジェットクラスのコンストラクターで呼び出します

...次に、新しいタイルを作成する関数で、タイルが作成された後に呼び出します...

結局、私のウィジェットは空です:(

編集:追加したいのですが、質問される可能性が高いと思うので、多くの理由で、QPixMap に変換してタイルの画像を表示することに興味がありません。

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

qt - qabstractlistmodelを使用したカスタムモデルでのQListviewの問題

qlistviewのカスタムモデルを実装しようとしています。私は私のような過去の投稿のリンクを読んでいますが、それを機能させることができませんでした。

追加ボタンをクリックして、ユーザーが動的に作成する必要のあるオブジェクトを一覧表示したいと思いました。リストビューのアイテムを削除するには、ユーザーはアイテムを選択してから削除ボタンをクリックする必要があります。

編集-QAbstractListModelから継承するカスタムモデルを使用してqlistviewを作成しようとしています。qlistviewにはQlistが表示され、すべてのアイテムがqlistviewにリストされます。また、ユーザーに新しいMyCustomObjectを作成してQlistに追加してもらいたいです。

グーグル検索で見つけた例や投稿をフォローしてみましたが、今は迷ってしまいました。

追加ボタンがクリックされると、アプリケーションがクラッシュします。

mainwindow.cpp

mainwindow.h

customlistmodel.cpp

CustomListModel.h

MyCustomObject.h

mycustomobject.cpp

main.cpp

mainwindow.ui ここに画像の説明を入力してください

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

qt - QListViewから値を選択し、送信時に次のウィンドウに渡しますか?

MySQLデータベースからの名前の簡単なリストを表示するために使用しています。 [次へ> ]ボタンをQListViewクリックすると、選択した値を[次のウィンドウ]に送信する必要があります。使用方法と方法、ガイドしてください、よろしくお願いします。QAbstractListModel

ここに画像の説明を入力してください

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

c++ - 空白行を表示する QListView ?? (Qt)

Qt の AbstractListModel の実験を始めたばかりで、練習用アプリケーションとして、カスタム オブジェクトを格納するモデルを作成しようとしています。クラスはtestpersonpersonlistmodelクラス、およびmainwindow. 私が抱えている問題は、ビューに正しいデータが表示されないことです.2つの「testperson」を追加すると、listViewに2つの空の行が表示されます. では、表示するモデルのデータフォーマットが実際にどのように機能するかについて、誰かが私を案内してもらえますか??? 私は今何を間違っていますか??

人物クラス.cpp

PersonListModel.h

PersonListModel.cpp

mainWindow.cpp のいくつかのテスト コードを次に示します。

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

qt - QAbstractListModel を使用した QListView は空のリストを表示します

QListViewカスタム を使用した非常に単純な例を作成しましたQAbstractListModelQListViewが表示されますが、空です。

私は何を間違っていますか?

コード:

ありがとう!

前のコードの修正は、モデルの親を次のように設定することQListViewです。

モデルがビューへの参照を持つ必要がある場合、モデル/ビューの独立性はどこにあるのでしょうか?

このモデルを 2 つの異なるビューで使用したい場合はどうすればよいですか?

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

qt - QML ListView で QAbstractListModel 派生モデルを役割別に並べ替える

基になる QHash に基づいて QAbstractListModel 派生モデルを作成しました。QML でモデルを使用する必要があるため、Qt ウィジェットとビューに統合されている並べ替え機能を利用できません。

QSortFilterProxyModel を使用してみましたが、私のモデルではうまくいかないようです。モデルを QML で適切に機能させるのは面倒ではありませんでした。

任意の提案をいただければ幸いです。

モデルのソースは次のとおりです。

これをソートしようとしています:

残念ながら、プロキシはモデルとして機能しますが、エントリはソートされません。

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

python - QAbstractListModel から項目を挿入および削除する

QComboBox で使用する QAbstractListView を作成しようとしています。この QComboBox は、含まれているアイテムの並べ替えられたリストを維持します。私の問題を示すサンプルコードを以下にいくつか含めました。リスト内の項目を更新すると、コンボ ボックスの currentIndex が更新されず、モデルへの変更が反映されません。rowsAboutToBeInserted シグナルと rowsInserted シグナルを使用してみましたが、効果が見られません (間違っているのでしょうか?)。

私の実際の使用例はもう少し複雑ですが、この例で十分です。並べ替えられるアイテムは単なる文字列ではなく、並べ替えるにはもう少し手間がかかり、DisplayRole とは異なる ItemDataRole を持ちます。

itemsAdded と itemsRemoved は私自身の関数であり、プロキシしようとしている別のリストからの信号に接続されます。

問題を引き起こすには、'Insert "c"' ボタンを押してください。文字列はリストに正しく挿入されますが、選択は 'e' から 'd' に移動します (つまり、選択インデックスは変更されません)。

サンプルコード

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

pyqt - QAbstractListModel の PyQt QWidget が QSortFilterProxyModel で削除される

リストビューにウィジェットを設定してから、カスタム プロキシフィルターを使用する必要があります。フィルターがないとうまく機能します。アクティブにすると、モデルに添付されているウィジェットが削除されるようです。

すべてのアイテムが正常に表示され、フィルタリングは機能しますが、フィルターを消去するときに、非表示のウィジェットを再度表示する必要がある場合、次のエラーがスローされます。

custom_widget.setGeometry(option.rect) RuntimeError: 基になる C/C++ オブジェクトが削除されました

QVariant を使用せずに internalPointer ルートを使用しようとしましたが、同じ場所で壊れました。

ご覧いただきありがとうございます。

設定:

カスタム ウィジェット

ビューを描画するデリゲート

リスト ビュー モデル:

最後にフィルター プロキシ モデル:

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

qt - QAbstractListModel から行を削除する

QML に公開されている QAbstractListModel から派生したカスタム モデルがあります。新しいアイテムを追加したり、既存のアイテムを削除したりする操作をサポートする必要があります。挿入操作は問題なく動作しますが、削除操作では endRemoveRows() 関数の呼び出し中にアプリケーションがクラッシュします。

クラス GPage は QObject から派生します。endRemoveRows() を呼び出そうとしているときにアプリがクラッシュする原因を突き止めようとして、私は感銘を受けました。endRemoveRows() が呼び出されると、「ASSERT failure in QList::at: "index out of range"」というメッセージが表示されます。QAbstracListModel から行を削除するにはどうすればよいですか? 他に方法はありますか?

Windows 7 64 ビット マシンで Qt 5.1.0 を使用しています。