大家好,我是面向大佬编程的菜鸟角角。我最近在写一个表格分析小工具,主界面上面有2个LineEdit,也就是单行输入框控件,是让用户输入表格路径的。
现在有3种情况:
第1种:用户没输入或者内容为空,后面的按钮就显示灰色图标。
第2种:用户输入了,但是路径是错的,后面按钮就显示红色图标。
第3种:用户输入正确,后面按钮就显示绿色图标。
如下图所示:
关键代码如下:
# 设置按钮图标
self.pushButton.setIcon(QIcon('./images/输入正确.png'))
# 设置按钮图标大小(这个也可以在Qt Designer中提前设置好)
self.pushButton.setIconSize(QSize(25, 25))
完整代码如下:
self.lineEdit.textChanged.connect(self.path_check_ld1)
self.lineEdit_2.textChanged.connect(self.path_check_ld2)
def path_check_ld1(self, text):
if text:
try:
df_1 = pd.read_excel(f'{text}')
self.pushButton.setIcon(QIcon('./images/表单完成2.png'))
except:
self.pushButton.setIcon(QIcon('./images/删除文件.png'))
else:
self.pushButton.setIcon(QIcon('./images/等待文件.png'))
def path_check_ld2(self, text):
if text:
try:
df_1 = pd.read_excel(f'{text}')
self.pushButton_2.setIcon(QIcon('./images/表单完成2.png'))
except:
self.pushButton_2.setIcon(QIcon('./images/删除文件.png'))
else:
self.pushButton_2.setIcon(QIcon('./images/等待文件.png'))
补充说明:
这里用到了Python中处理异常的try语句,它常用的2种风格:
try:可能异常代码,except:异常的处理方式 ,else:无异常的处理方式
try:可能异常代码,finally:对错都运行
可以看到上面2个自定义函数中都是有text参数的,这是因为LineEdit的textChanged()信号是会返回LineEdit里面的文本内容的。就是因为我不知道这个特性,本来很简单的代码,我绕了一堆弯路。
特别鸣谢:
最后,万分感谢群内昵称为讨厌自己的大佬,是这个小哥哥帮我解决的。言多无益,唯有一句:好人一生平安!