2009-04-27 15 views
2

私はリストボックスを選択できます。その左側にはコンボボックスがあり、利用可能なグループがリストされています。ユーザーがグループ内にいる場合、コンボボックスは自動的にそのグループに設定されます。グループ選択を変更すると、ユーザーをそのグループに移動します。私は、この接続を追加:PyQTのコンボボックスはユーザーとのやりとりにのみ反応します

QtCore.QObject.connect(self.GroupsBox, QtCore.SIGNAL("currentIndexChanged(QString)"), self.HandleGrouping) 

問題は、私は別のグループに異なるユーザを選択することがありますから、私は新しいユーザーを選択するたびに、コンボボックスの変更とQtのデフォルトのオプションは 'としてこれを登録することですcurrentIndexChanged 'シグナル。

直接的にユーザーがウィジェット自体とやりとりする際に信号を鳴らす方法はないようです。これを回避するにはどのような方法がありますか?

答えて

6

QComboBox(activated(int index))からの信号をキャッチし、それに基づいて選択したユーザーを更新します。あなたのハンドラ関数では、コンボボックス内の選択されたインデックスが、選択したユーザが属するグループと同じであれば、何もしないでください。

あなたの行動の順序としてコンボボックスをユーザリストボックスの右側に移動することがあります「ユーザーの選択」 - >「グループの選択」となります。

+0

+1動作の順序による変更(およびactivated()信号も)。ディレクティブが何かの右から左へのUIをプログラミングしていない限り?私は他の文化がそれをするのだろうかと思います。 –

+0

@Chris Cameron、Qtは自動的にRTLロケールのレイアウトを反映することができます。これを自分でテストするには、コマンドラインの "-reverse"スイッチをQtアプリケーションに渡してください。 –

関連する問題