【发布时间】:2018-12-27 18:25:36
【问题描述】:
问题
如何创建圆角文本小部件?我想我想创建一个圆形画布并用没有边框的文本框填充整个画布。
问题
当我尝试扩展画布的高度和宽度时,创建圆形边框画布的代码不起作用。换行并变得不连续。
创建圆角画布的代码取自How to make a tkinter canvas rectangle with rounded corners?
我的自定义宽度和高度的代码
def rounded_rect(canvas, x, y, w, h, c):
canvas.create_arc(x, y, x+2*c, y+2*c, start= 90, extent=90, style="arc")
canvas.create_arc(x+w-2*c, y+h-2*c, x+w, y+h, start=270, extent=90, style="arc")
canvas.create_arc(x+w-2*c, y, x+w, y+2*c, start= 0, extent=90, style="arc")
canvas.create_arc(x, y+h-2*c, x+2*c, y+h, start=180, extent=90, style="arc")
canvas.create_line(x+c, y, x+w-c, y )
canvas.create_line(x+c, y+h, x+w-c, y+h )
canvas.create_line(x, y+c, x, y+h-c)
canvas.create_line(x+w, y+c, x+w, y+h-c)
import tkinter
root = tkinter.Tk()
canvas = tkinter.Canvas(root)
canvas.grid(row=0,column=0)
# The width and height has been changed from the original solution
rounded_rect(canvas, 10, 10, 330, 290, 10)
root.mainloop()
输出
【问题讨论】:
标签: python-3.x tkinter tkinter-canvas