鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[Tkinter] Tkinter 窗口组件:Canvas

  [复制链接]
发表于 2017-10-15 09:10:30 | 显示全部楼层
学习收藏..............
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-16 21:09:09 | 显示全部楼层
dddddddddddddddddddddddd
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-14 17:07:32 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-8 20:07:00 | 显示全部楼层
xuexi
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-13 09:46:35 | 显示全部楼层
学习一下!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-17 15:42:42 | 显示全部楼层
哭,没有鱼币肿么办。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-7 21:56:35 | 显示全部楼层
canvas我看大部分的gui组价都有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-1 16:45:23 | 显示全部楼层
学习学习!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-2 16:45:32 | 显示全部楼层
点赞楼主功能真的强大
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-12 16:55:23 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-17 08:35:59 | 显示全部楼层
小甲鱼老师什么时候讲一下matplotlib,matplotlib好像用的也满多的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2018-11-28 17:52:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-21 09:58:18 | 显示全部楼层
Leozhanggg 发表于 2017-7-26 15:02
from tkinter import *

root = Tk()

优秀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-5 16:23:16 | 显示全部楼层
  1. from tkinter import *

  2. root = Tk()

  3. w = Canvas(root,width=600,height=600,background='white')
  4. w.pack()

  5. #辅助线
  6. w.create_line(0,300,600,300,fill='grey',dash=(4,4))

  7. w.create_line(300,0,300,600,fill='grey',dash=(4,4))


  8. center_x,center_y = 300,220

  9. #head 头(直径240)
  10. w.create_oval(180,100,420,340,fill='deepskyblue')

  11. # 脸(直径200)
  12. w.create_oval(200,140,400,340,fill='white')

  13. # 眼睛(长60, 宽50)
  14. w.create_oval(250,120,300,180,fill='white')
  15. w.create_oval(350,120,300,180,fill='white')

  16. # 眼珠子(长15, 宽10)
  17. w.create_oval(280,140,295,160,fill='black')
  18. w.create_oval(320,140,305,160,fill='black')

  19. # 眼珠子发光点(长10, 宽5)
  20. w.create_oval(285,145,290,155,fill='white')
  21. w.create_oval(315,145,310,155,fill='white')

  22. #鼻子(直径20)
  23. w.create_oval(290,165,310,185,fill='red')

  24. #鼻子下方的线
  25. w.create_line(300,185,300,270)

  26. #嘴巴
  27. w.create_arc(230,190,370,270,extent=-180,style=ARC)
  28. #w.create_arc(240,250,360,250,extent=-180,style=ARC)

  29. #胡子
  30. w.create_line(230,185,280,200)
  31. w.create_line(220,215,280,215)
  32. w.create_line(230,245,280,230)
  33. w.create_line(370,185,320,200)
  34. w.create_line(380,215,320,215)
  35. w.create_line(370,245,320,230)

  36. #身体
  37. w.create_rectangle(210,300,390,450,fill='deepskyblue')

  38. #肚子
  39. w.create_oval(230,280,370,420,fill='white')

  40. w.create_arc(230,280,370,420,style=ARC,fill='red')

  41. #项圈
  42. w.create_line(205,295,395,295,capstyle='round',width=20,fill='red')

  43. #铃铛
  44. w.create_oval(285,300,315,330,fill='yellow')
  45. w.create_line(285,315,315,315,capstyle='round',width=2)
  46. w.create_oval(296,318,304,326,fill='red')
  47. w.create_line(300,326,300,330)

  48. #口袋
  49. w.create_arc(250,300,350,400,extent=-180)

  50. #脚
  51. w.create_arc(280,430,320,470,extent=180,fill='white')
  52. w.create_line(280,450,320,450,fill='white')
  53. w.create_oval(190,430,290,470,fill='white')
  54. w.create_oval(410,430,310,470,fill='white')

  55. #左手
  56. points1 =[
  57.     #手臂左上
  58.     210,310,
  59.     #手臂左下
  60.     170,350,
  61.     #手臂右上
  62.     190,370,
  63.     #手臂右下
  64.     210,360
  65.     ]
  66. w.create_polygon(points1,outline='black',fill='deepskyblue')
  67. w.create_oval(150,346,190,386,fill='white')

  68. #右手
  69. points2 =[
  70.     #手臂左上
  71.     390,310,
  72.     #手臂左下
  73.     430,350,
  74.     #手臂右上
  75.     410,370,
  76.     #手臂右下
  77.     390,360
  78.     ]
  79. w.create_polygon(points2,outline='black',fill='deepskyblue')
  80. w.create_oval(450,346,410,386,fill='white')

  81. #擦掉手臂线
  82. w.create_line(210,310,210,350,fill='deepskyblue')
  83. w.create_line(390,310,390,350,fill='deepskyblue')

  84. mainloop()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-3-28 11:02:31 | 显示全部楼层
FigureCanvasAgg不算canvas的对象吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-5 21:12:16 | 显示全部楼层
可以用canvas画一个多边型  然后把图片放到多边形里面去吗?  请问怎么做?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-13 14:49:46 | 显示全部楼层
本帖最后由 cheadache 于 2019-7-13 15:01 编辑

from tkinter import *


root = Tk()

c = Canvas(root, width=500, height=600, background='white')
c.pack()
grid_x = c.create_line(-250, 0, 250, 0, dash=(10, 10), fill='gray')
grid_y = c.create_line(0, -300, 0, 300, dash=(10, 10), fill='gray')

#所有都在原点绘图,方便对称计算,最后再移动动画面中央
#头
head_01 = c.create_oval(100, 103, -100, -103, fill='DeepSkyBlue')
c.move(head_01, 0, -70)
head_02 = c.create_oval(85, 88, -85, -88, fill='white')
c.move(head_02, 0, -50)
head_eye01 = c.create_oval(20, 23, -20, -23, fill='white')
head_eye02 = c.create_oval(20, 23, -20, -23, fill='white')
c.move(head_eye01, -20, -135)
c.move(head_eye02, 20, -135)
head_eye_hole01 = c.create_oval(6, 8, -6, -8, fill='black')
head_eye_hole02 = c.create_oval(6, 8, -6, -8, fill='black')
c.move(head_eye_hole01, -10, -135)
c.move(head_eye_hole02, 10, -135)
head_eye_flash01 = c.create_oval(2, 5, -2, -5, fill='white')
head_eye_flash02 = c.create_oval(2, 5, -2, -5, fill='white')
c.move(head_eye_flash01, -10, -135)
c.move(head_eye_flash02, 10, -135)
head_nose = c.create_oval(8, 8, -8, -8, fill='red')
c.move(head_nose, 0, -115)
head_mouse01 = c.create_arc(50, 15, -50, -15, style=ARC, extent=-180)
c.move(head_mouse01, 0, -50)
head_mouse02 = c.create_line(0, -35, 0, -107)
head_beard01 = c.create_line(-20, -90, -60, -100)
head_beard02 = c.create_line(20, -90, 60, -100)
head_beard03 = c.create_line(-20, -80, -65, -80)
head_beard04 = c.create_line(20, -80, 65, -80)
head_beard05 = c.create_line(-20, -70, -60, -60)
head_beard06 = c.create_line(20, -70, 60, -60)
#手和胳膊
body_arm_left = c.create_polygon(-80, 0, -80, 40, -125, 50, -135, 35, fill='deepskyblue', outline='black')
body_arm_right = c.create_polygon(80, 0, 80, 40, 125, 50, 135, 35, fill='deepskyblue', outline='black')
body_hand_right = c.create_oval(20, 20, -20, -20, fill='white')
c.move(body_hand_right, 130, 42.5)
body_hand_right = c.create_oval(20, 20, -20, -20, fill='white')
c.move(body_hand_right, -130, 42.5)
body_main = c.create_rectangle(-80, -10, 80, 110, fill='deepskyblue')
body_tummy = c.create_arc(-60, -60, 60, 60, fill='white', extent=270, start=135, style=CHORD)
c.move(body_tummy, 0, 30)
body_bag = c.create_arc(-40, -40, 40, 40, fill='white', extent=-180)
c.move(body_bag, 0, 30)
#腿
cover = c.create_arc(20, 20, -20, -20, fill='white', extent=180)
c.move(cover, 0, 115)
cover02 = c.create_arc(20, 20, -20, -20, fill='white', extent=-180, outline='')
c.move(cover02, 0, 110)
foot_left = c.create_oval(-40, -20, 40, 20, fill='white')
c.move(foot_left, -50, 115)
foot_right = c.create_oval(-40, -20, 40, 20, fill='white')
c.move(foot_right, 50, 115)
#铃铛
bell_07 = c.create_line(-80, -10, 80, -10, fill='black', width=17, capstyle='round')
bell_05 = c.create_line(-80, -10, 80, -10, fill='red', width=15, capstyle='round')
bell_01 = c.create_oval(15, 15, -15, -15, fill='yellow')
bell_02 = c.create_line(-12, -5, 12, -5, fill='black', width=7, capstyle='round')
bell_03 = c.create_line(-12, -5, 12, -5, fill='yellow', width=5, capstyle='round')
bell_04 = c.create_oval(4, 4, -4, -4, fill='red')
c.move(bell_04, 0, 6)
bell_06 = c.create_line(0, 8, 0, 15)

#移动动画面中央
for each in c.find_all():
    c.move(each, 250, 300)

mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-25 14:54:29 | 显示全部楼层
abc0012544 发表于 2016-1-29 15:38
请教下,弧线是怎么画的呀?我的参数一直有问题

我也是,画出来的弧线的大小和位置和我预期的都不一样,好奇怪
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-25 14:56:17 | 显示全部楼层
想请教弧线怎么画,参数一直有问题,画出来的和预期的结果不一样哇
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-31 12:09:41 | 显示全部楼层
没金币了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 16:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表