歌者文明清理员 发表于 2023-7-4 18:46:31

pyqt问题

本帖最后由 歌者文明清理员 于 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")

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 18:46:40

问题出在您的代码中,在实例化PictureGet类的时候,调用了self.frame2.setVisible(False),但是并没有定义frame2属性。

要解决这个问题,您需要在PictureGet类的__init__方法中添加一个self.frame2属性,并将其初始化为相应的组件。您可以参考下面的修改后的代码:

python
class PictureGet(QMainWindow, form_class):
    def __init__(self):
      super().__init__()
      self.setupUi(self)# 添加这一行来初始化界面
      self.frame2.setVisible(False)


通过调用self.setupUi(self)来初始化界面,它会根据UI文件中的定义创建并初始化界面组件,包括frame2,这样就能够正确地访问和操作frame2了。然后您可以再次运行代码,看看问题是否得到解决。

编程追风梦 发表于 2023-7-4 18:46:44

根据您提供的代码和错误信息,问题出在以下代码行:

python
self.frame2.setVisible(False)


错误提示指出'PictureGet' object has no attribute 'frame2',也就是说PictureGet对象没有frame2属性。根据您提供的UI代码,frame2是centralwidget的子widget,并不属于PictureGet对象。

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

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

这样就能正确地访问到 centralwidget 下的 frame2 了。

isdkz 发表于 2023-7-4 19:32:02

在?

歌者文明清理员 发表于 2023-7-4 19:33:21

isdkz 发表于 2023-7-4 19:32
在?

isdkz 发表于 2023-7-4 19:34:04

歌者文明清理员 发表于 2023-7-4 19:33


手动显身卡{:10_256:}

歌者文明清理员 发表于 2023-7-4 19:35:01

isdkz 发表于 2023-7-4 19:34
手动显身卡

不要用Chat狗屁通

isdkz 发表于 2023-7-4 19:36:12

歌者文明清理员 发表于 2023-7-4 19:35
不要用Chat狗屁通

这个都不需要chatgpt,一看就看出来了

isdkz 发表于 2023-7-4 20:02:03

      super().__init__()
      self.setupUi(self)
      self.frame2.setVisible(False)

sfqxx 发表于 2023-7-4 20:06:53

你故意的吧,这个我都会,同意楼上{:10_277:}

歌者文明清理员 发表于 2023-7-4 22:33:01

sfqxx 发表于 2023-7-4 20:06
你故意的吧,这个我都会,同意楼上

真忘了

sfqxx 发表于 2023-7-4 22:44:46

歌者文明清理员 发表于 2023-7-4 22:33
真忘了

{:10_277:}
页: [1]
查看完整版本: pyqt问题