Python运行时出现:AttributeError: ‘PySide2.QtWidgets.QWidget‘ object has no attribute

526 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

AttributeError: 'PySide2.QtWidgets.QWidget' object has no attribute 'Button_copy'背后的原因居然是???

前文

Python GUI初学者计划1——PySide2和PyQt5库的安装

Python GUI初学者计划2——手写代码的方式实现PySide2界面设计(详细讲解内部联系)

Python GUI初学者计划3——动态加载UI的方式实现PySide2界面设计(详细讲解内部联系)

当我用PySide2设计界面时候,设置了两个按钮,分别实现:

1、开玩笑 2、复制文本 两个功能。

但我运行代码的时候只有一个按键可以用,另一个则一直提示: 在这里插入图片描述

AttributeError: 'PySide2.QtWidgets.QWidget' object has no attribute 'Button_copy'

解决问题的过程:

1、我将按钮对象的名字改了又改:

在这里插入图片描述

2、不断将新的UI保存、刷新、另存为还是不行

在这里插入图片描述 但是一直报错。。。。。 在这里插入图片描述

3、难道是按钮对象只能有一个,后来的都无效?

我将第一个初始的按钮同时代表连接两个函数:

self.ui.Button_jok.clicked.connect(self.yahoo)
self.ui.Button_jok.clicked.connect(self.copy_text)

竟然可以运行!!!!!!脑瓜子嗡嗡嗡的

开玩笑功能!!!在这里插入图片描述 紧接着第二个弹窗: 在这里插入图片描述 这什么道理,一个按键可以,两个按键不行?也没听说PySide2有这个BUG,那一定是我哪个地方出问题了!!!

转换思维,验证想法!!!

为了验证我第二个按键的存在是否合理,我做了两个实验: 1:修改第二个按键的对象名 2:删除第二个按键

观察这个.ui文件的.XML 代码,果然发现了猫腻!

修改按键对象名: 在这里插入图片描述 删除第二个按键: 在这里插入图片描述 然鹅.............它的.XML文件的信息一直没变动,尽管我一直保存.ui 文件。(可能是因为我之前执行过直接讲.ui文件转换为.py文件过的原因!!!)

发现问题,解决问题!!!

尽管.XML文件会显示更新 在这里插入图片描述 即是点击【是(Y)】: 在这里插入图片描述 .XML文件的按键对象名还是没改!!!老忽悠了······

既然找到问题了,那就好解决了,直接讲.XML中的控件对象名改了了即可: 在这里插入图片描述 这样一一对应起来,保存之后重新运行代码!!!

-----------------------------------------------------

The End 果然不报错了!!!

在这里插入图片描述 两个按键分别能实现自己的功能了: 在这里插入图片描述 在这里插入图片描述

编程使我快乐!!!

写在最后: 你要相信大多数人与人之间的差距并不大,但是0.99的N次方和1.1的N次方差距是随着N多增多而越来越大的;坚定的目标和持久的努力一定会成功! 你偷过的每一个懒,都会成为你日后最深的遗憾。

我是通信不二,一个积极努力,乐观向上的程序猿!!!