【问题标题】:pygame and QlineEdit boxes errorpygame 和 QlineEdit 框错误
【发布时间】:2023-03-28 06:25:01
【问题描述】:

我找到了一个游戏:memory.py here(向下滚动)或direct linksnapshot

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

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

提前谢谢你

【问题讨论】:

  • 您不能将空字符串'' 转换为整数。如果编辑框为空,pygame应该等待多久?

标签: python pygame qlineedit


【解决方案1】:

文本框返回一个空字符串。你应该先检查字符串是否为空。

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)

【讨论】:

    【解决方案2】:

    @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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-10
      • 2018-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多