The following scripts creates a tk.Canvas
widget will a filled arc. The filled color is solid, i.e uniformly filled. I would like a graded appearance in either the radial or angular direction. Is there a way to do this? If so, how can it be done?
import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root)
canvas.grid(row=0, column=0, sticky="nsew", pady=10)
canvas.create_arc(10, 10, 200, 200, style=tk.PIESLICE, start=0, extent=359, fill="yellow", outline="blue", width=10)
root.mainloop()
CodePudding user response:
I don't think create_arc
accepts gradients as fill values. I think your best bet is to create an image and display it in your window.
Creating radial gradients is pretty straightforward with drawSvg
. With drawSvg
it is also easy to draw lines around and in your arc.
For conic/angular gradient, it isn't as simple. I found how to draw one in
Edit: refactoring code and adding colors as kwarg (now working for conic gradient too). Also if you use Windows, you'll have to install libcairo separately: install uniconvertor and make sure libcairo-2.dll
is in your PATH
.