微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AttributeError: 'int' 对象没有属性 'pack'

如何解决AttributeError: 'int' 对象没有属性 'pack'

所以,问题是,我目前正在尝试制作一个 minecraft Tellraw 命令生成器。我还没有制作菜单,我正在尝试使用 TKinter 在画布内显示图像。画布确实显示,并且确实有效。但是当我尝试使用函数“create_image”在其中打印图像时,当我尝试使用 pack 函数时会出现此错误

Traceback (most recent call last):
  File "C:\Users\PC\Desktop\Python\Algorithms\minecraft Generator\index.py",line 34,in <module>
    MAIN_MENU_TELLRAW_IMAGE.pack()
AttributeError: 'int' object has no attribute 'pack'

这是我的代码

from tkinter import *

# Window
window = Tk()
window.title('minecraft Generator')
window.geometry("1080x600")
window.minsize(1080,600)
window.maxsize(1080,600)
window.iconbitmap('assets/img/logo.ico')

# Config
window.config(background='#627f1f')

#Composants

    # Main Menu Title
TITLE_FRAME = Frame(window,bg='#627f1f')
MAIN_MENU_TITLE = Label(TITLE_FRAME,text='minecraft Generator',font=("Courrier",40),bg='#627f1f',fg='white')
MAIN_MENU_SUBTITLE = Label(TITLE_FRAME,text='A minecraft Generator for all needs !',15),fg='white')

    # Main Menu TellRaw
MAIN_MENU_TELLRAW_BUTTON = Button(TITLE_FRAME,text='Tellraw Command',bg='white',fg='#627f1f',font=("Courrier News",15))
MAIN_MENU_TELLRAW_IMAGE = Canvas(window,width=157,height=100)
MAIN_MENU_TELLRAW_IMAGE = MAIN_MENU_TELLRAW_IMAGE.create_image((157,100),image=PhotoImage(file='assets/img/tellraw_logo.png'))

# Packing

    # Title Frame
MAIN_MENU_TITLE.pack()
MAIN_MENU_SUBTITLE.pack()
TITLE_FRAME.pack(side='top')

    # TellRaw
MAIN_MENU_TELLRAW_BUTTON.pack(pady=25)
MAIN_MENU_TELLRAW_IMAGE.pack()

# display Window
window.mainloop()

我真的不知道为什么会发生这个错误......如果有人能帮助我,那就太好了^^

解决方法

正如@Andrea 所说:

<tkinter.Canvas>.create_image(...) 返回一个 int,用于标识特定的画布项目(其 ID)。在线上:MAIN_MENU_TELLRAW_IMAGE = MAIN_MENU_TELLRAW_IMAGE.create_image(...)MAIN_MENU_TELLRAW_IMAGE 替换为 int。当您尝试 MAIN_MENU_TITLE.pack() 时,您正在尝试调用 .pack()int 方法,该方法不存在并引发错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。