pygame和Qline编辑框

2024-09-25 00:28:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我找到了一个游戏:内存.pyhere(向下滚动)或direct linksnapshot。在

我正在修改它。我要做的第一件事是从QlineEdit框中设置等待时间。在

我改了这个:

pygame.time.wait(500)

为此:

^{pr2}$

他犯了个错误:

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: ''

我不知道该怎么办,有人知道怎么解决这个问题吗?在

提前谢谢你


Tags: 内存textself游戏uitime错误link
2条回答

@salva Nicolas是对的。在

最好的检查方法是在输入文本时检查条件。虽然这有一个问题。在

如果您只是在编辑行中输入一个空格,您将得到一个错误。这仍然不是一个傻瓜式的方法。在

要检查是否在QLineEdit中输入了有效的文本,您需要使用validator。在

或者

可以尝试使用try将中的qlineedit转换为integer或float,如果它引发异常,则可以执行其他操作。在

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

文本框返回空字符串。您应该先检查字符串是否为空。在

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)

相关问题 更多 >