私のフォームには、チェック可能なQListWidgetItemsを含むQListWidgetがあります。 QListWidgetItemがチェックされている/チェックされていないというイベントをキャプチャする方法を探しています。私はこのようなシグナルは存在しませんが、おそらく私は間違っています。私が現在行っているのは、QListWidget :: itemClicked()シグナルを使用し、QListWidgetItemのcheckStateをチェックしていますが、これはアイテムがクリックされたときにこのイベントが発生したために必要なものではありません。 。誰か助けてもらえますか?ありがとう!Qt/C++:QListWidgetItemがチェックされたときのシグナル?
14
A
答えて
18
明らかにそのような信号は提供されていませんが、QListWidget::itemChanged(QListWidgetItem* item)
を使用し、その結果のitem->checkState()
をスキャンすることをお勧めします。これは若干改善する必要がありますitemClicked
+0
保護された信号です。私はこのエラーを[ここ](https://stackoverflow.com/q/48059796/1080355)で説明されているように使用するとエラーに直面します。 – VSB
0
QListView
を使用して独自のQAbstractListModel
を使用することもできます。最初は、独自の管理コードを追加する必要があるので、いくつかの追加コードを追加します。しかし、あなたはより低いレベルのアクセスを得る。基本的にはQListView
があなたのモデルに何をするか尋ねるからです。また、入力をあなたのリストモデルに中継して、そこに引っ掛けることができます。
また、QStandardItemModel
をサブクラス化して、チェックボックスの変更に関する特定の編集を行うこともできます。
関連する問題
- 1. QtPropertyBrowserと値が変更されたシグナル
- 2. C:シグナルが受信されたときのセグメンテーションエラー
- 3. ストリームが閉じられたときにシグナルが送信される
- 4. 公開されたシグナルalljoyn
- 5. 放射されたシグナルが検出されない
- 6. スクリプトがロードされたときにチェックする
- 7. QTabWidgetのシグナルが検出されない
- 8. シグナルで中断されたepoll_wait()
- 9. Bluetoothシグナルが枯れてしまった
- 10. シグナルの後にシグナルがコアダンプを生成できないハンドラ
- 11. チェック配列が指定されたオブジェクト
- 12. 要素の有効期限が切れたときにシグナル機能を使用したマップの期限切れ
- 13. 表示要素ラジオがチェックされているとき
- 14. チェックボックスがチェックされたときにサブミットボタンを有効にするJavascript関数
- 15. コントロールが完全に初期化されたときをチェックする方法?
- 16. List.Addメソッドが呼び出されたときにチェックを行います
- 17. GitHubエラーに押し込むことができません:シグナル13でパックされたパックオブジェクト
- 18. アンドロイドのチェックされたtextviewをチェックしたり、
- 19. node.jsメインプロセスがABRTシグナルで殺されましたが、process.on( "SIGABRT"、...)によってキャッチされませんでした。
- 20. djangoの変更されたフィールドを特定するpost_saveシグナル
- 21. FormBuilderコントロールが「チェックされた後に式が変更されました」例外
- 22. jQueryラジオボタンがチェックされていないと変更される
- 23. 0または1つのトグルボタンがチェックされたToggleButtonグループ
- 24. シグナルとスロット
- 25. チェックボックスのチェックされたプロパティを追加できません
- 26. PHP - チェックされたチェックボックスの値にアクセスできない
- 27. チェック少なくとも1つのレコードが指定された属性が真
- 28. 以前のシグナルQThreadイベントループの開始が失われました
- 29. ボタンがクリックされたときのUmbrellaException
- 30. ログアウトユーザが殺されたときのユーザ
私は、QListWidget :: itemChanged()シグナルを使ってこの問題を回避できると思います。これは、アイテムをチェック/チェック解除したときにトリガされますが、アイテムの値を編集すると、私は今行っていませんが、まだ不完全な解決策です。 – Joseph
'QListWidget :: itemClicked()'のもう1つの問題は、キーボードを使用したときに起動しないことです。たとえば、スペースキーを使用してチェック状態を変更します。 – Hossein