2016-06-16 4 views
0

私は、ユーザが0個以上のアイテムを選択できるタイプのQListWidgetのオブジェクトを持っています。PyQt - QListWidgetで何も選択されていないときにイベントをトリガーしますか?

何も選択されていない場合、関数を呼び出すイベントをどのようにトリガーできますか?私はあなたが使用して特定の項目をクリック検知できることを知っている :

QListWidget.itemClicked.connect(self.item_click) 

は何も全く選択されていないときのために同様のものがありますか? (つまり、QListWidgetはクリアです)

ありがとう!

答えて

1

一般に、itemSelectionChanged信号に接続し、何かが選択されているかどうかを確認します。

self.listwidget.itemSelectionChanged.connect(self.on_selection_changed) 

def on_selection_changed(self): 
    if not self.listwidget.selectedItems(): 
     # Do Stuff Here 
     self.nothing_selected_function() 

しかし、それだけで何か選択し、ユーザーがすべてを選択解除されたイベントをキャッチします。何も選択されなかった場合は、この信号をトリガーすることはありません(最初にリストを作成しても何も選択されません)。その場合は、スロットを手動で呼び出す必要があります。

self.listwidget = ... # Code that builds and populates list widget 
# Call this manually the first time. 
self.on_selection_changed() 

あなたの質問の一部はあいまいです。 なぜ何かが「選択されていない」ときを知りたいですか?新しい商品がいつリストに追加されるのですか?リストが変更されているので「選択されていない」機能が起動されるはずですが、まだ何も選択されていませんか?

+0

アイテムが選択されていない場合は、ボタンとテキストボックスのいくつかを無効にしたいと思います。ユーザーが新しい項目をリストに追加すると、自動的にその項目が選択された項目として設定されます。 – Gambit2007

関連する問題