非凡 发表于 2022-2-9 17:25:25

关于Button的 compound参数问题

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


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


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

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

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

root.mainloop()

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


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


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

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

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

root.mainloop()

ckblt 发表于 2022-2-9 17:26:49

btn = tk.Button(root, image=im, compound=CENTER, text="点我看看吧", command=msgShow, cursor="star")
应该是
btn = tk.Button(root, image=im, compound=tk.CENTER, text="点我看看吧", command=msgShow, cursor="star")

Twilight6 发表于 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

非凡 发表于 2022-2-10 15:26:41

ckblt 发表于 2022-2-9 17:26
应该是

非常感谢
页: [1]
查看完整版本: 关于Button的 compound参数问题