鱼C论坛

 找回密码
 立即注册
查看: 1344|回复: 3

[已解决]关于Button的 compound参数问题

[复制链接]
发表于 2022-2-9 17:25:25 | 显示全部楼层 |阅读模式

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

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

x
在使用from tkinter import *,引入tkinter时,就可以正常传入Button的 compound参数。
  1. from tkinter import *
  2. from PIL import Image, ImageTk


  3. def msgShow():
  4.     label.config(text="今天是个好日子", bg="lightyellow", fg="blue")


  5. root = Tk()
  6. root.title("button的test2")
  7. root.geometry("300x200")
  8. # label=Label(root)

  9. image = Image.open('F:\手机\探店猫咖\IMG_20220108_161912.jpg')
  10. im = ImageTk.PhotoImage(image=image)

  11. # compound=TOP显示图片在上面 CENTER显示图片和文字重叠
  12. # 可以用 LEFT TOP RIGHT BOTTOM CENTER
  13. # 可以用cursor="star"实现按钮上鼠标显示为星星
  14. btn = Button(root, image=im, compound=CENTER, text="点我看看吧", command=msgShow, cursor="star")
  15. # label.pack()
  16. btn.pack()

  17. root.mainloop()
复制代码

但是在使用import tkinter as tk,引入tkinter库后,Button的 compound参数就出错了。这时为什么啊?
  1. import tkinter as tk
  2. from PIL import Image, ImageTk


  3. def msgShow():
  4.     label.config(text="今天是个好日子", bg="lightyellow", fg="blue")


  5. root = tk.Tk()
  6. root.title("button的test2")
  7. root.geometry("300x200")
  8. # label=Label(root)

  9. image = Image.open('F:\手机\探店猫咖\IMG_20220108_161912.jpg')
  10. im = ImageTk.PhotoImage(image=image)

  11. # compound=TOP显示图片在上面 CENTER显示图片和文字重叠
  12. # 可以用 LEFT TOP RIGHT BOTTOM CENTER
  13. # 可以用cursor="star"实现按钮上鼠标显示为星星
  14. btn = tk.Button(root, image=im, compound=CENTER, text="点我看看吧", command=msgShow, cursor="star")
  15. # label.pack()
  16. btn.pack()

  17. root.mainloop()
复制代码
最佳答案
2022-2-9 20:37:20

前者代码使用 from tkinter import * 导入方式导入

所以直接将一些属性导入了,例如:LEFT、TOP 、BOTTOM、CENTER

而后者代码使用 import tkinter as tk 取了别名的方式导入

所以后续调用就需要带上 tk.LEFT、tk.TOP 、tk.BOTTOM、tk.CENTER
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-2-9 17:26:49 | 显示全部楼层
  1. btn = tk.Button(root, image=im, compound=CENTER, text="点我看看吧", command=msgShow, cursor="star")
复制代码

应该是
  1. btn = tk.Button(root, image=im, compound=tk.CENTER, text="点我看看吧", command=msgShow, cursor="star")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-9 20:37:20 | 显示全部楼层    本楼为最佳答案   

前者代码使用 from tkinter import * 导入方式导入

所以直接将一些属性导入了,例如:LEFT、TOP 、BOTTOM、CENTER

而后者代码使用 import tkinter as tk 取了别名的方式导入

所以后续调用就需要带上 tk.LEFT、tk.TOP 、tk.BOTTOM、tk.CENTER
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-10 15:26:41 | 显示全部楼层

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 10:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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