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多增多而越来越大的;坚定的目标和持久的努力一定会成功!
你偷过的每一个懒,都会成为你日后最深的遗憾。

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

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐