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了吗
问题出在您的代码中,在实例化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了。然后您可以再次运行代码,看看问题是否得到解决。 根据您提供的代码和错误信息,问题出在以下代码行:
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
在?
? 歌者文明清理员 发表于 2023-7-4 19:33
?
手动显身卡{:10_256:} isdkz 发表于 2023-7-4 19:34
手动显身卡
不要用Chat狗屁通 歌者文明清理员 发表于 2023-7-4 19:35
不要用Chat狗屁通
这个都不需要chatgpt,一看就看出来了 super().__init__()
self.setupUi(self)
self.frame2.setVisible(False) 你故意的吧,这个我都会,同意楼上{:10_277:} sfqxx 发表于 2023-7-4 20:06
你故意的吧,这个我都会,同意楼上
真忘了 歌者文明清理员 发表于 2023-7-4 22:33
真忘了
{:10_277:}
页:
[1]