非リーフ アイテムのチェック ボックスをクリックすると、QTreeWidget が期待どおりに動作しません。私の QTreeWidget には 2 つのレベルの子があり、ツリー ウィジェットの各項目をチェックできます (項目ごとにチェック ボックスが有効になっています)。この QTreeWidget では、リーフ アイテムはユーザーが選択できますが、非リーフ アイテムは選択できず、すべてのアイテムが有効になり、ユーザーがチェックできます。
[]Family node1
- []Primary node1
- []child1
- []Secondary node1
- []child1
[]Family node2
- []Primary node2
- []child2
- []Secondary node2
- []child2
リーフアイテムフラグ設定
Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled
非リーフ アイテム フラグの設定
Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsTristate
リーフ アイテムに関連付けられたチェック ボックスを直接クリックすると、Qt は currentItemChanged() シグナルを生成します。しかし、非リーフ アイテムの関連付けられたチェック ボックスを直接クリックすると、currentItemChanged() シグナルが生成されません。これは、非リーフアイテムの取り扱いに不便をもたらします。
Qt 4.7.4 では正常に動作していましたが、Qt 4.8.1 ではすべてのプラットフォーム (Windows、Darwin、および Linux) で動作していません。
このバグを再現するためのサンプル プログラムを添付しました。
これはバグですか、それとも予想される動作ですか?
Qt 4.8 を使用するすべてのプラットフォーム (Linux CentOS、Windows 7、および MacOS) でこのバグに気付きました。