PyQt5中关于QLineEdit的空输入报错的简单处理
PyQt5中关于QLineEdit的空输入报错的简单处理
- 前言
- 分析原因
- 解决办法
- 总结
前言
在PyQt5的界面中对于数据的输入,最常用的就是QLineEdit
控件,该控件作为基本的数据输入控件已经能满足我们的简单使用。在使用过程,出现闪退情况,发现问题:
ValueError: invalid literal for int() with base 10: ''
整体程序闪退。发现就是QLineEdit
控件不能在转化int的过程中出现空的情况。
分析原因
在使用过程中,我们在获取得到QLineEdit
控件的输入后,需要将其转化为对应的字节,然后组包进行传递。在这个过程中,有些QLineEdit
控件没有输入数据,而是以空的形式进行数据传递。实则我们获得空的传递需要转化为0的形式进行下一步的输出。那么就会出现QLineEdit
的''
传递,在转化为int的情况下,程序报错闪退。
解决办法
最开始查是否可以直接属性设置,但是单纯的属性设置是不能满足我们实际需要。也查出可以设置正则表达式或者限制输入来解决问题。
我采用了一种最简单也是最笨的形式,就是三目运算,暂时解决当下的问题。
par=(int(self.n.text() if self.n.text()!='' else 0).to_bytes(1, byteorder='little', signed=True))
采用三目运算直接判断是否为''
,如果为''
,则输入为0,不为''
,则直接采用其控件输入。
总结
任何程序的报错,通过错误提示或者debug调试,找出问题源头,从源头进行解决!