鱼C论坛

 找回密码
 立即注册
查看: 1827|回复: 12

[已解决]pyqt问题

[复制链接]
发表于 2023-7-4 18:46:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 歌者文明清理员 于 2023-7-4 22:32 编辑

如果是chat狗屁通脚本
请不要回复
"谢谢"对鱼C论坛积极地脚本攻击
我很想扣分

main.py
from PyQt6 import uic
from PyQt6.QtWidgets import QApplication, QMainWindow

form_class = uic.loadUiType("picture_get.ui")[0]

class PictureGet(QMainWindow, form_class):
    def __init__(self):
        super().__init__()
        self.frame2.setVisible(False)

if __name__ == "__main__":
    app = QApplication([])
    window = PictureGet()
    window.show()
    app.exec()
err:
PS E:\Python123> cd h
PS E:\Python123\h> python main.py
Traceback (most recent call last):
  File "E:\Python123\h\main.py", line 13, in <module>        
    window = PictureGet()
  File "E:\Python123\h\main.py", line 9, in __init__
    self.frame2.setVisible(False)
AttributeError: 'PictureGet' object has no attribute 'frame2'
PS E:\Python123\h> 
why,ui里面不是有frame2了吗
最佳答案
2023-7-4 20:02:03
        super().__init__()
        self.setupUi(self)
        self.frame2.setVisible(False)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-4 18:46:40 | 显示全部楼层
问题出在您的代码中,在实例化PictureGet类的时候,调用了self.frame2.setVisible(False),但是并没有定义frame2属性。

要解决这个问题,您需要在PictureGet类的__init__方法中添加一个self.frame2属性,并将其初始化为相应的组件。您可以参考下面的修改后的代码:
pythonclass PictureGet(QMainWindow, form_class):    def __init__(self):        super().__init__()        self.setupUi(self)  # 添加这一行来初始化界面        self.frame2.setVisible(False)
通过调用self.setupUi(self)来初始化界面,它会根据UI文件中的定义创建并初始化界面组件,包括frame2,这样就能够正确地访问和操作frame2了。然后您可以再次运行代码,看看问题是否得到解决。

点评

我很赞同!: 0.0 不,我坚决不同意楼主的看法!: 0.0
我很赞同!: 0 不,我坚决不同意楼主的看法!: 0
您的回答正确,但我不想设置您为“最佳”。最佳答案的选择权在提问者手上——小甲鱼  发表于 2023-7-4 18:51
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-4 18:46:44 | 显示全部楼层
根据您提供的代码和错误信息,问题出在以下代码行:
pythonself.frame2.setVisible(False)
错误提示指出'PictureGet' object has no attribute 'frame2',也就是说PictureGet对象没有frame2属性。根据您提供的UI代码,frame2centralwidget的子widget,并不属于PictureGet对象。

要解决此问题,您可以尝试修改代码如下:

self.frame2.setVisible(False) 修改为 self.centralwidget.frame2.setVisible(False)

这样就能正确地访问到 centralwidget 下的 frame2 了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-4 19:32:02 | 显示全部楼层
在?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-7-4 19:33:21 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-4 19:34:04 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-4 19:35:01 | 显示全部楼层

不要用Chat狗屁通
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-4 19:36:12 | 显示全部楼层

这个都不需要chatgpt,一看就看出来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-4 20:02:03 | 显示全部楼层    本楼为最佳答案   
        super().__init__()
        self.setupUi(self)
        self.frame2.setVisible(False)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-4 20:06:53 | 显示全部楼层
你故意的吧,这个我都会,同意楼上
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-4 22:33:01 | 显示全部楼层
sfqxx 发表于 2023-7-4 20:06
你故意的吧,这个我都会,同意楼上

真忘了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-4 22:44:46 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 18:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表