我想知道如何使用tkinter模块将按钮放在画布内。有人问了这个问题,但这是5年前的另一个版本,所以对于我的情况而言,这不是很方便,我还是一个初学者,所以我只在最佳答案中了解了大约3/4的代码。这是一个问题:How to make a Button using the tkinter Canvas widget?
from tkinter import *
root = Tk()
c=Canvas(root,width=200,height=150,bg='blue')
c.pack(side = 'top')
c.create_text(100,50,anchor='c',fill='orange',font='Times 28',text='List')
button = Button(root, text="Quit",command=root.destroy)
button.pack()
mainloop()
当我运行此代码时,它将在Canvas下方而不是Canvas上创建按钮。我在https://docs.python.org/3.7/library/tkinter.html上正在使用的IDE指南中寻求帮助。即使我可能错过了某件事,我也找不到将按钮放在“画布”上的方法。如果这个问题被认为没有帮助或不必要,我深表歉意,并将立即将其关闭。
Python版本: 3.7
级别:初学者
运行代码为: IDLE 64位
操作系统: Windows 10
答案 0 :(得分:1)
当您使用pack()
时,tkinter会将按钮放在其主控(根)上,并且绘制画布的区域已被占用。
要将按钮放在画布上,应该在画布上使用功能create_window()
:
from tkinter import *
root = Tk()
c = Canvas(root,width=200,height=150,bg='blue')
c.pack(side = 'top')
c.create_text(100, 50, anchor='c', fill='orange', font='Times 28', text='List')
button = Button(root, text="Quit", command=root.destroy)
canvas_widget = c.create_window(100, 100, window=button)
root.mainloop()
答案 1 :(得分:0)
删除button.pack()
尝试使用下面的代码
button =按钮(root,text =“ Quit”,command = root.destroy)
c.create_window(10,10,anchor = NW,window = button)