2013-04-24 76 views
1

:memory.py here(向下滾動)或direct linksnapshotpygame的,我已經找到了比賽QLineEdit的盒子錯誤

我正在修改它。我試圖做的第一件事是從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: '' 

我不知道該怎麼辦,誰知道如何解決這個問題?

謝謝您提前

+0

您不能將空字符串''''轉換爲整數。如果編輯框爲空,pygame應該等待多久? – Kevin 2013-04-24 18:06:57

回答

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) 
+0

謝謝尼古拉斯! – 2013-04-24 18:32:52

0

@salva尼古拉斯是正確的。

檢查的最佳方法是檢查條件是否輸入文本。雖然這有一個問題。

如果您只是在行編輯中輸入一個空格,將會出現錯誤。它仍然不是一個傻瓜證明的方法。

檢查一個有效的文本是否已經輸入到你需要使用驗證器的QLineEdit中。

您可以嘗試在轉換到QLineEdit的整數或浮點數使用try,如果它拋出一個異常,你可以做別的事情。

try: 
    x_min=ast.literal_eval(str(self.ui.x_min_3d.text())) # Try to convert 
except: 
    x_min=0 # else do something else 
相關問題