当鼠标悬停在饼图上方时,如何显示饼图的类别?

2024-09-30 12:19:33 发布

您现在位置:Python中文网/ 问答频道 /正文

如何通过标签类型识别每个饼片?这个馅饼是等分的,但是我想要它,所以当我把鼠标悬停在一部分上时,它会显示那部分代表什么。即将鼠标悬停在知识片上,显示“知识类别”。你知道吗

    knowledge_slice1 =     (k_weighting1/100) * 360
    thinking_slice1 =      (t_weighting1/100) * 360
    communication_slice1 = (c_weighting1/100) * 360
    application_slice1 =   (a_weighting1/100) * 360

    course1_pie = Canvas(assessmentsframe1, width=255, height=255, bg = 'white')

    course1_pie.create_arc((5, 5, 250, 250), fill = "#FFFFAA",
                           start= 0,
                           extent = knowledge_slice1)

    course1_pie.create_arc((5, 5, 250, 250), fill = "#C0FEA4",
                           start= knowledge_slice1,
                           extent = thinking_slice1)

    course1_pie.create_arc((5, 5, 250, 250), fill = "#AFAFFF",
                           start= knowledge_slice1 + thinking_slice1,
                           extent = communication_slice1)

    course1_pie.create_arc((5, 5, 250, 250), fill = "#FFD490",
                           start= knowledge_slice1 + thinking_slice1 + communication_slice1,
                           extent =application_slice1)

Tags: 类型applicationcreate标签fillstartextentcommunication
1条回答
网友
1楼 · 发布于 2024-09-30 12:19:33

我自己对python和Tkinter还不熟悉,但您可能希望使用<;Enter>;和<;Leave>;事件绑定。例如,这对我很有效:

master=Tk()
knowledge_slice1 =     (40.0/100) * 360
thinking_slice1 =      (30.0/100) * 360
communication_slice1 = (20.0/100) * 360
application_slice1 =   (10.0/100) * 360

course1_pie = Canvas(master, width=265, height=265, bg = 'white')
course1_pie.pack()
knowarc=course1_pie.create_arc((5, 5, 250, 250), fill = "#FFFFAA",
   start= 0,
   extent = knowledge_slice1)
thinkarc=course1_pie.create_arc((5, 5, 250, 250), fill = "#C0FEA4",
   start= knowledge_slice1,
   extent = thinking_slice1)
commarc=course1_pie.create_arc((5, 5, 250, 250), fill = "#AFAFFF",
   start= knowledge_slice1 + thinking_slice1,
   extent = communication_slice1)
apparc=course1_pie.create_arc((5, 5, 250, 250), fill = "#FFD490",
   start= knowledge_slice1 + thinking_slice1 + communication_slice1,
   extent =application_slice1)

hover_text=course1_pie.create_text((125,260),text="")

def know_enter(event):
   course1_pie.itemconfig(hover_text,text="Knowledge Category")
def think_enter(event):
   course1_pie.itemconfig(hover_text,text="Thinking Category")
def comm_enter(event):
   course1_pie.itemconfig(hover_text,text="Communication Category")
def app_enter(event):
   course1_pie.itemconfig(hover_text,text="Application Category")
def any_leave(event):
   course1_pie.itemconfig(hover_text,text="")

course1_pie.tag_bind(knowarc,'<Enter>',know_enter)
course1_pie.tag_bind(knowarc,'<Leave>',any_leave)
course1_pie.tag_bind(thinkarc,'<Enter>',think_enter)
course1_pie.tag_bind(thinkarc,'<Leave>',any_leave)
course1_pie.tag_bind(commarc,'<Enter>',comm_enter)
course1_pie.tag_bind(commarc,'<Leave>',any_leave)
course1_pie.tag_bind(apparc,'<Enter>',app_enter)
course1_pie.tag_bind(apparc,'<Leave>',any_leave)

相关问题 更多 >

    热门问题