鱼C论坛

 找回密码
 立即注册
查看: 1284|回复: 11

[已解决]tkinter

[复制链接]
发表于 2020-6-15 21:42:34 | 显示全部楼层 |阅读模式

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

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

x
我想在button组件的回调函数里再放一个label来实现当按钮被按下时用label组件加载出一个jpg
但是按下按钮后没有反应,怎么解决
或者有什么别的办法能让按下按钮后加载图片吗
最佳答案
2020-6-16 17:49:28

路径自己加上改成这样即可,图片文件在函数内打开,函数执行已结束就被垃圾回收机制给清除了

  1. from tkinter import *
  2. from PIL import Image, ImageTk

  3. root = Tk()

  4. Text = '''
  5. hello
  6. '''


  7. def callback_b1():
  8.     label2 = Label(root, image=photo)
  9.     label2.pack()


  10. label = Label(root, text=Text, justify=CENTER, font="华康少女字体,20")
  11. label.pack()
  12. img = Image.open("")
  13. photo = ImageTk.PhotoImage(img)
  14. b1 = Button(root, text="按钮1", command=callback_b1).pack()
  15. b2 = Button(root, text="按钮2").pack()

  16. mainloop()

复制代码
QQ浏览器截图20200615214112.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-16 00:27:41 | 显示全部楼层

你pack 错了,改下应该就能解决问题,还有下次建议发代码,你如果不方便给别人看到文本,可以重新编辑下

因为代码别人可以直接拿去测试,看图就不怎么方便

错了.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-16 07:53:18 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2020-6-16 00:27
你pack 错了,改下应该就能解决问题,还有下次建议发代码,你如果不方便给别人看到文本,可以重新编辑下
...

下次会注意的,我想问一下pack怎么改能打出图片
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-16 08:23:25 | 显示全部楼层
1815702237 发表于 2020-6-16 07:53
下次会注意的,我想问一下pack怎么改能打出图片

你pack 前面改成 label2.pack()  不是 pack 的问题 是你布局管理器压根没布局上图片的 Label  所以肯定不会显示的~   看楼上的图片
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-16 12:49:28 | 显示全部楼层
image参数改成:
text=photo
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-16 17:41:59 | 显示全部楼层
Twilight6 发表于 2020-6-16 08:23
你pack 前面改成 label2.pack()  不是 pack 的问题 是你布局管理器压根没布局上图片的 Label  所以肯定不 ...

我改成label2之后还是什么都不显示,
我也试了楼下的把image改成text按下后就跳出pyimage1,
然后按一次后面数字就加一,但不显示图片
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-16 17:43:30 | 显示全部楼层
Twilight6 发表于 2020-6-16 08:23
你pack 前面改成 label2.pack()  不是 pack 的问题 是你布局管理器压根没布局上图片的 Label  所以肯定不 ...

改完后在点下他把界面下面就拉长了那张图片的长度,但是图片显示不出
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-16 17:43:54 | 显示全部楼层
1815702237 发表于 2020-6-16 17:43
改完后在点下他把界面下面就拉长了那张图片的长度,但是图片显示不出

发代码吧  直接帮你改 这一点一点的太麻烦了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-16 17:46:39 | 显示全部楼层
Twilight6 发表于 2020-6-16 17:43
发代码吧  直接帮你改 这一点一点的太麻烦了
  1. from tkinter import *
  2. from PIL import Image,ImageTk

  3. root = Tk()

  4. Text = '''
  5. hello
  6. '''

  7. def callback_b1():
  8.      
  9.      img = Image.open("")
  10.      photo = ImageTk.PhotoImage(img)
  11.      label2 = Label(root,image=photo)
  12.      label2.pack()
  13.      
  14. label = Label(root,text = Text,justify=CENTER,font="华康少女字体,20")
  15. label.pack()

  16. b1 = Button(root,text="按钮1",command=callback_b1).pack()
  17. b2 = Button(root,text="按钮2").pack()

  18. mainloop()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-16 17:49:28 | 显示全部楼层    本楼为最佳答案   

路径自己加上改成这样即可,图片文件在函数内打开,函数执行已结束就被垃圾回收机制给清除了

  1. from tkinter import *
  2. from PIL import Image, ImageTk

  3. root = Tk()

  4. Text = '''
  5. hello
  6. '''


  7. def callback_b1():
  8.     label2 = Label(root, image=photo)
  9.     label2.pack()


  10. label = Label(root, text=Text, justify=CENTER, font="华康少女字体,20")
  11. label.pack()
  12. img = Image.open("")
  13. photo = ImageTk.PhotoImage(img)
  14. b1 = Button(root, text="按钮1", command=callback_b1).pack()
  15. b2 = Button(root, text="按钮2").pack()

  16. mainloop()

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-16 17:52:09 | 显示全部楼层
Twilight6 发表于 2020-6-16 17:49
路径自己加上改成这样即可,图片文件在函数内打开,函数执行已结束就被垃圾回收机制给清除了

谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-16 17:53:05 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-22 00:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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