2017-09-11 8 views
2

私はアプリケーションを設計するqt5です。ここでは私が使用している関数のシーケンスを示します。Python 3で*: 'NoneType'と 'int'のサポートされていないオペランドタイプ

self.u = 0 
self.u = self.listWidget_3.itemClicked.connect(self.ClickRW1) 

self.pushButton_2.clicked.connect(self.push4) 

後pushButton_2をクリックすると、この関数は、プロットの雨機能

def push4(self): 
    plot_rain(self.z, self.u) 

を呼び出さ

def ClickRW1(self, item): 
    self.y = item.text() 
    if self.y is "June": 
     return 0 
    elif self.y is "July": 
     return 1 
    elif self.y is "August": 
     return 2 
    else: 
     return 3 

ClickRW1機能である -

def plot_rain(year, mont): 
    if year>2013: 
     year = year-1 
    n = year-2000 
    xc = np.zeros(4) 
    for i in range(0,4): 
     xc[i] = i 
    plt.plot(xc, predicted[((n*16)+(mont*4)):((n*16) + 4 + (mont*4))]) 
    plt.show() 

ときI pushBuをクリックしますtton_2。以下はエラーです。

plt.plot(xc, predicted[((n*16)+(mont*4)):((n*16) + 4 + (mont*4))]) 

TypeError: unsupported operand type(s) for *: 'NoneType' and 'int' 
+0

を将来的には、**完全なトレースバックを含めてください。**エラーのだけではなく、最後の2ライン。 Pythonがどのようにしてエラーになったのかを、どのような経路で示すかで、人々があなたを助けるのがずっと簡単になります。 –

答えて

2

self.uNoneです。あなたはここにNoneに設定します。

self.u = self.listWidget_3.itemClicked.connect(self.ClickRW1) 

connect()呼び出しがNoneを返さ。

それからここplot_rain()self.uを渡す:

def push4(self): 
    plot_rain(self.z, self.u) 

montとしてその値を使用するため、mont*4は失敗しています。

ソリューションは、何にも.connect()結果を割り当てないことです、それは割り当てる必要はありません。

self.u = 0 
self.listWidget_3.itemClicked.connect(self.ClickRW1) 
関連する問題