进阶墩子哥 2023-08-31 18:07 采纳率: 67.9%
浏览 5
已结题

PIL里面加图片怎么回事

使用tkinter,为什么我在第五个页面加入的图片和第一个页面的图片一块出现而且点击第一个页面的内容第五个页面就直接消失了
这是页面一:

root = Tk()
root.title("mbti十六型人格测试")
root.geometry("800x800")
root.configure(bg="AntiqueWhite")

image = Image.open(r"C://Users//29212//Desktop//mbti1.jpg")
zoom = 1.8
pixels_x, pixels_y = tuple([int(zoom * x) for x in image.size])
img = ImageTk.PhotoImage(image.resize((600, 400)))
label = Label(root, image=img)
label.image = img
label.pack()

这是页面五:

image = Image.open(r"C:\Users\29212\Desktop\results.jpg")
zoom = 1.8
pixels_m, pixels_n = tuple([int(zoom * x) for x in image.size])
img = ImageTk.PhotoImage(image.resize((600, 400)))
label = Label(fifth, image=img)
label.image = img
label.pack()

image = Image.open(r"C:\Users\29212\Desktop\results2.jpg")
zoom = 1.8
pixels_x, pixels_y = tuple([int(zoom * x) for x in image.size])
img = ImageTk.PhotoImage(image.resize((600, 400)))
label = Label(fifth, image=img)
label.image = img
label.pack()


运行结果:

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-31 20:56
    关注

    【以下回答由 GPT 生成】

    这个问题出现的原因是,你在创建第五个页面的图片时,将pixels_xpixels_y分别赋值给了第一个页面图片的变量名,导致第一个页面也显示了第五个页面的图片,并且点击第一个页面的内容时,第五个页面也消失了。

    要修正这个问题,你需要分别使用独立的变量名来存储第一个页面和第五个页面的图片尺寸。以下是修正后的代码示例:

    root = Tk()
    root.title("mbti十六型人格测试")
    root.geometry("800x800")
    root.configure(bg="AntiqueWhite")
    
    # 第一个页面
    image1 = Image.open(r"C://Users//29212//Desktop//mbti1.jpg")
    zoom = 1.8
    pixels_x1, pixels_y1 = tuple([int(zoom * x) for x in image1.size])
    img1 = ImageTk.PhotoImage(image1.resize((600, 400)))
    label1 = Label(root, image=img1)
    label1.image = img1
    label1.pack()
    
    # 第五个页面
    fifth = Toplevel()
    fifth.title("第五个页面")
    fifth.geometry("800x800")
    fifth.configure(bg="AntiqueWhite")
    
    image2 = Image.open(r"C:\Users\29212\Desktop\results.jpg")
    zoom = 1.8
    pixels_x2, pixels_y2 = tuple([int(zoom * x) for x in image2.size])
    img2 = ImageTk.PhotoImage(image2.resize((600, 400)))
    label2 = Label(fifth, image=img2)
    label2.image = img2
    label2.pack()
    
    image3 = Image.open(r"C:\Users\29212\Desktop\results2.jpg")
    zoom = 1.8
    pixels_x3, pixels_y3 = tuple([int(zoom * x) for x in image3.size])
    img3 = ImageTk.PhotoImage(image3.resize((600, 400)))
    label3 = Label(fifth, image=img3)
    label3.image = img3
    label3.pack()
    

    这样就保证了第一个页面和第五个页面的图片分别使用独立的变量存储,并且点击第一个页面的内容不会导致第五个页面消失。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月27日
  • 已采纳回答 9月19日
  • 创建了问题 8月31日

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。