1

私はゲームを見つけました: memory.py here (下にスクロール) または直接リンクまたはスナップショット

そして私はそれを修正しています。私が最初にやろうとしているのは、QlineEdit ボックスから待機時間を設定することです。

私はこれを変更しました:

pygame.time.wait(500)

これに:

pygame.time.wait(self.ui.lineEdit.text()) 

そして彼のエラーを得ました:

pygame.time.wait(self.ui.lineEdit.text()) typeError: delay requires one integer argument

それから私は使用しました:

pygame.time.wait(int(self.ui.lineEdit.text()))

そして彼のエラーを得ました:

ValueError: invalid literal for int() with base 10: ''

どうすればいいのかわからないのですが、この問題を解決する方法を知っている人はいますか?

前もって感謝します

4

2 に答える 2

0

テキスト ボックスが空の文字列を返しています。最初に文字列が空かどうかを確認する必要があります。

text = self.ui.lineEdit.text()
if text:
    time= 0 #or some default value if no time is specified
else
    time = int(text)
pygame.time.wait(time)
于 2013-04-24T18:13:51.027 に答える
0

@salva Nicolasは正しいです。

確認する最良の方法は、テキストが入力されているかどうかを確認することです。これには問題がありますが。

行編集でスペースを入れるだけだとエラーになります。それはまだ絶対確実な方法ではありません。

有効なテキストが QLineEdit に入力されているかどうかを確認するには、バリデーターを使用する必要があります。

また

try を使用して qlineedit を整数または浮動小数点数に変換してみてください。例外がスローされた場合は、別のことを行うことができます。

try:
    x_min=ast.literal_eval(str(self.ui.x_min_3d.text())) # Try to convert
except:
    x_min=0 # else do something else
于 2013-09-11T13:31:24.057 に答える