2016-12-05 6 views
3

PyQtのボタン操作に問題があります。私は関数で文字列を送信したいと思いますが、私はこのエラーを得た:引数1に予期しない型 'NoneType'がありますか?

TypeError: argument 1 has unexpected type 'NoneType'

import sys 

from PyQt5.QtWidgets import QApplication, QPushButton, QAction 
from PyQt5.QtCore import QObject, pyqtSignal 
from PyQt5.QtGui import * 
from PyQt5.uic import * 

app = QApplication(sys.argv) 
cocktail = loadUi('create.ui') 

def mixCocktail(str): 
     cocktail.show() 
     cocktail.showFullScreen() 
     cocktail.lbl_header.setText(str) 


widget = loadUi('drinkmixer.ui') 

widget.btn_ckt1.clicked.connect(mixCocktail("string")) 

widget.show() 
sys.exit(app.exec_()) 
+0

に置き換えてきた組込みデータ型Pythonの? – user3030010

+0

トレースバック(最新の呼び出しの最後): ファイル "------ \ drinkmixer.py" widget.btn_ckt1.clicked.connect(mixCocktail( "文字列")) TypeError例外では、ライン27、:引数1予期しないタイプの 'NoneType'があります – Darkdrummer

+0

ああ。これは 'mixCocktail()'から何も返さないためです。 – user3030010

答えて

8

user3030010ekhumoroそれが呼び出し可能な機能を期待することで示唆したように。これはあなたがlambda: micCocktail("string") とその引数を交換する必要がある場合strを使用しないで、私はこのエラーが上で何行まで表示され_str

import sys 

from PyQt5.QtWidgets import QApplication, QPushButton, QAction 
from PyQt5.QtCore import QObject, pyqtSignal 
from PyQt5.QtGui import * 
from PyQt5.uic import * 

app = QApplication(sys.argv) 
cocktail = loadUi('create.ui') 

def mixCocktail(_str): 
     cocktail.show() 
     cocktail.showFullScreen() 
     cocktail.lbl_header.setText(_str) 


widget = loadUi('drinkmixer.ui') 

widget.btn_ckt1.clicked.connect(lambda: micCocktail("string")) 

widget.show() 
sys.exit(app.exec_()) 
+1

'str'はキーワードではなく、組み込み型です。 – ekhumoro

+0

整流のおかげで、私は間違ったことを書いていることを知っていました。 – harshil9968

+0

この回答は完全に間違っています。正しい解決策は、[コメントby user3030010](http://stackoverflow.com/questions/40982518/argument-1-has-unexpected-type-nonetype#comment69174849_40982518)に記載されています。 – ekhumoro

関連する問題