2017-04-14 6 views
0

おはよう!PyQt5 ComboBoxが見つからない

私は先週Pythonを学び始めましたが、他の言語と比較してわかりやすくて驚きましたが、私は1つのことを理解できません。

私はウェブサイトからテーブル(NBAチームの統計情報)を掻き集めて毎日更新しています。 そのテーブルには30行(30 NBAチーム)と19個の列(ポイント、リバウンド、ブロックなどの統計)があります。

私は30のチーム名をComboBoxウィジェットに入れたいと思っています。チームが選ばれたら、その特定のチーム(これらの19の列)のデータを表示します。表示されるデータはQTableWidgetにあります。

class Window(QWidget): 
def __init__(self): 
    super().__init__() 
    self.initUI() 

def initUI(self): 

    comboStatsText = QLabel('Home Team', self) 
    comboStatsText.move(15, 10) 
    comboStatsBox = QComboBox(self) 
    comboStatsBox.move(15, 30) 


    #Combo Box Data 
    comboStatsBox.addItem(name) 
    comboStatsBox.addItem(name1) 

は、私は正常私はチームとtablewidgetポップやショーのデータを選択した段階に行ってきましたが、私は再び別のチームを選択した場合、それは変更されません。私は起動時にそれを変更する方法を調べましたが、できませんでした。

私はコンボボックスのインデックスで何かを見て、それを実装する方法を理解できませんでした。それはこのようなものでしょうか?

インデックス(コンボボックスの場合)= 1(対応チーム)なら、 そのチームのデータを表示しますか?

私はあなたのアイデアを得ることを願っています:/私は物事を説明することが本当に悪く、英語​​は母国語ではありません。どんな助けや提案も大歓迎です、ありがとうございます!

答えて

0

選択イベントのためにコンボボックスからの信号を受け取る関数を記述する必要があります。おそらくactivatedシグナル。次に、既存のテーブルウィジェットをクリアして新しいデータを書き込む必要があります。このような

何か:

combostatsbox.activated.connect(self.load_team) 

def load_team(): 
    self.team_table_widget.clear() 
    # Set your values now 
+0

おかげで、私はアイデアを持っています。選ばれたチームごとにデータが異なる場合はどうなりますか?すべてのチームが0から29までのインデックスを持っていれば、より簡単になります。コンボボックスチームでインデックス0を選択すると、あなたの例のような特定のデータを持つテーブルが作成されます。 – Gedas

+0

なぜあなたは 'clear'メソッドを使うのですか?これにより、以前のチームにロードされたデータが消去され、新しく選択したチームのデータをロードして読み込むことができます。 – Grr

+0

私のコンボボックスは30のチーム名で構成されていますので、チーム#3を選択すると、チーム3のデータでテーブルを作成する必要があります。ああ、あなたはおそらく私がばかだと思うでしょう。 :D – Gedas

関連する問題