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

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

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

  • 19
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值