Clinet[Number]PyQt5 Python的输入文本错误



我想在我的程序中接收来自用户的数字形式的数据,但我不知道为什么它会得到一个错误

self.InputTotal = QtWidgets.QLineEdit(Form)
self.InputTotal.setGeometry(QtCore.QRect(60, 20, 141, 31))
self.InputTotal.setObjectName("InputTotal")
chkinput = self.InputTotal.text()

只需要chkinput数字

if int(chkinput) == 0:
ranger = 1000
else:
ranger = chkinput
for i in range(ranger):
self.btn_eth.clicked.connect(self.Generator)

您面临的问题是,当您运行if int(chkinput) == 0时,它所做的只是检查强制转换为整数的chkinput变量是否等于零。它实际上并没有将chkinput值转换为整数。

为此,您需要将转换后的值分配回变量名,如:chkinput = int(chkinput)

因此,当前当您的chkinput不等于0时,您正在为else子句中的ranger变量分配一个字符串值,当您尝试将其用作范围时,该值将引发错误。

您还应该添加一些额外的错误检查,这样您就不会遇到更多的问题。例如,您可以检查文本是否为空字符串,然后使用.isdigit()方法检查内容是否为数字,如果返回true,则您知道使用int构造函数是安全的,而不会引发错误。

chkinput = self.InputTotal.text()
if len(chkinput) > 0 and chkinput.strip().isdigit():
chkinput = int(chkinput)
if chkinput == 0:
ranger = 1000
else:
ranger = chkinput
for i in range(ranger):
self.btn_eth.clicked.connect(self.Generator)

相关内容

最新更新