TK_HS.py 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. import tkinter.messagebox
  2. import math
  3. from CGB import TK_DoneHS
  4. def HS_1():
  5. global HS_List
  6. if tkinter.messagebox.askokcancel('提示', '是否绘制1次函数(点击取消可撤销未执行的函数)'):
  7. HS_List[1] = lambda x:x
  8. else:
  9. HS_List[1] = None
  10. def HS_2():
  11. global HS_List
  12. if tkinter.messagebox.askokcancel('提示', '是否绘制2次函数(点击取消可撤销未执行的函数)'):
  13. HS_List[2] = lambda x:x**2
  14. else:
  15. HS_List[2] = None
  16. def HS_3():
  17. global HS_List
  18. if tkinter.messagebox.askokcancel('提示', '是否绘制3次函数(点击取消可撤销未执行的函数)'):
  19. HS_List[4] = lambda x:x**3
  20. else:
  21. HS_List[4] = None
  22. def HS_D1():
  23. global HS_List
  24. if tkinter.messagebox.askokcancel('提示', '是否绘制-1次函数(点击取消可撤销未执行的函数)'):
  25. HS_List[3] = lambda x:1/x
  26. else:
  27. HS_List[3] = None
  28. def HS_GH():
  29. global HS_List
  30. if tkinter.messagebox.askokcancel('提示', '是否绘制根号函数(点击取消可撤销未执行的函数)'):
  31. HS_List[5] = lambda x:x**(1/2)
  32. else:
  33. HS_List[5] = None
  34. def HS_ZS():
  35. global HS_List
  36. if tkinter.messagebox.askokcancel('提示', '是否绘制指数函数(点击取消可撤销未执行的函数)'):
  37. HS_List[6] = lambda x:10**x
  38. else:
  39. HS_List[6] = None
  40. def HS_DS():
  41. global HS_List
  42. if tkinter.messagebox.askokcancel('提示', '是否绘制对数函数(点击取消可撤销未执行的函数)'):
  43. HS_List[7] = lambda x:math.log(x,2)
  44. else:
  45. HS_List[7] = None
  46. def HS_DS2():
  47. global HS_List
  48. if tkinter.messagebox.askokcancel('提示', '是否绘制对数函数2(点击取消可撤销未执行的函数)'):
  49. HS_List[8] = lambda x:math.log(2,x)
  50. else:
  51. HS_List[8] = None
  52. def HS_sin():
  53. global HS_List
  54. if tkinter.messagebox.askokcancel('提示', '是否绘制正弦函数(点击取消可撤销未执行的函数)'):
  55. HS_List[9] = lambda x:math.sin(x)
  56. else:
  57. HS_List[9] = None
  58. def HS_cos():
  59. global HS_List
  60. if tkinter.messagebox.askokcancel('提示', '是否绘制余弦函数(点击取消可撤销未执行的函数)'):
  61. HS_List[10] = lambda x:math.cos(x)
  62. else:
  63. HS_List[10] = None
  64. def HS_tan():
  65. global HS_List
  66. if tkinter.messagebox.askokcancel('提示', '是否绘制正切函数(点击取消可撤销未执行的函数)'):
  67. HS_List[11] = lambda x:math.tan(x)
  68. else:
  69. HS_List[11] = None
  70. def HS_cot():
  71. global HS_List
  72. if tkinter.messagebox.askokcancel('提示', '是否绘制余切函数(点击取消可撤销未执行的函数)'):
  73. HS_List[12] = lambda x:1/math.tan(x)
  74. else:
  75. HS_List[12] = None
  76. def HS_sec():
  77. global HS_List
  78. if tkinter.messagebox.askokcancel('提示', '是否绘制正割函数(点击取消可撤销未执行的函数)'):
  79. HS_List[13] = lambda x:1/math.cos(x)
  80. else:
  81. HS_List[13] = None
  82. def HS_csc():
  83. global HS_List
  84. if tkinter.messagebox.askokcancel('提示', '是否绘制余割函数(点击取消可撤销未执行的函数)'):
  85. HS_List[11] = lambda x:1/math.sin(x)
  86. else:
  87. HS_List[11] = None
  88. def HS_arcsin():
  89. global HS_List
  90. if tkinter.messagebox.askokcancel('提示', '是否绘制反正弦函数(点击取消可撤销未执行的函数)'):
  91. HS_List[12] = lambda x:math.asin(x)
  92. else:
  93. HS_List[12] = None
  94. def HS_arccos():
  95. global HS_List
  96. if tkinter.messagebox.askokcancel('提示', '是否绘制反余弦函数(点击取消可撤销未执行的函数)'):
  97. HS_List[13] = lambda x:math.acos(x)
  98. else:
  99. HS_List[13] = None
  100. def HS_arctan():
  101. global HS_List
  102. if tkinter.messagebox.askokcancel('提示', '是否绘制反正切函数(点击取消可撤销未执行的函数)'):
  103. HS_List[14] = lambda x:math.atan(x)
  104. else:
  105. HS_List[14] = None
  106. def HS_arccot():
  107. global HS_List
  108. if tkinter.messagebox.askokcancel('提示', '是否绘制反余切函数(点击取消可撤销未执行的函数)'):
  109. HS_List[15] = lambda x:1/math.atan(x)
  110. else:
  111. HS_List[15] = None
  112. def HS_arcsec():
  113. global HS_List
  114. if tkinter.messagebox.askokcancel('提示', '是否绘制反正割函数(点击取消可撤销未执行的函数)'):
  115. HS_List[16] = lambda x:1/math.acos(x)
  116. else:
  117. HS_List[16] = None
  118. def HS_arccsc():
  119. global HS_List
  120. if tkinter.messagebox.askokcancel('提示', '是否绘制反余割函数(点击取消可撤销未执行的函数)'):
  121. HS_List[17] = lambda x:1/math.asin(x)
  122. else:
  123. HS_List[17] = None
  124. def HS_ZDY():
  125. global HS_List,Num
  126. get = TK_DoneHS.Done_HS()
  127. if get != None:
  128. HS_List[Num] = get
  129. Num += 1
  130. def close():
  131. global top
  132. try:TK_DoneHS.top.destroy()
  133. except:pass
  134. top.destroy()
  135. def CHS():
  136. global HS_List#绘制函数列表
  137. global Num,top
  138. Num = 18#字定义函数的序号
  139. HS_List = {}
  140. w_b=20
  141. top = tkinter.Tk() # 设置屏幕
  142. top.title('')
  143. top.resizable(width=False, height=False)
  144. top.geometry(f'+180+10')
  145. tkinter.Button(top, text="1次函数", command=HS_1, width=w_b, height=1).pack()
  146. tkinter.Button(top, text="2次函数", command=HS_2, width=w_b, height=1).pack()
  147. tkinter.Button(top, text="-1次函数", command=HS_D1, width=w_b, height=1).pack()
  148. tkinter.Button(top, text="3次函数", command=HS_3, width=w_b, height=1).pack()
  149. tkinter.Button(top, text="根号函数", command=HS_GH, width=w_b, height=1).pack()
  150. tkinter.Button(top, text="对数函数", command=HS_DS, width=w_b, height=1).pack()
  151. tkinter.Button(top, text="指数函数", command=HS_ZS, width=w_b, height=1).pack()
  152. tkinter.Button(top, text="对数底函数", command=HS_DS2, width=w_b, height=1).pack()
  153. tkinter.Button(top, text="sin函数", command=HS_sin, width=w_b, height=1).pack()
  154. tkinter.Button(top, text="cos函数", command=HS_cos, width=w_b, height=1).pack()
  155. tkinter.Button(top, text="tan函数", command=HS_tan, width=w_b, height=1).pack()
  156. tkinter.Button(top, text="cot函数", command=HS_tan, width=w_b, height=1).pack()
  157. tkinter.Button(top, text="csc函数", command=HS_csc, width=w_b, height=1).pack()
  158. tkinter.Button(top, text="sec函数", command=HS_sec, width=w_b, height=1).pack()
  159. tkinter.Button(top, text="arcsin函数", command=HS_arcsin, width=w_b, height=1).pack()
  160. tkinter.Button(top, text="arccos函数", command=HS_arccos, width=w_b, height=1).pack()
  161. tkinter.Button(top, text="arctan函数", command=HS_arctan, width=w_b, height=1).pack()
  162. tkinter.Button(top, text="arccot函数", command=HS_arctan, width=w_b, height=1).pack()
  163. tkinter.Button(top, text="arccsc函数", command=HS_arccsc, width=w_b, height=1).pack()
  164. tkinter.Button(top, text="arcsec函数", command=HS_arcsec, width=w_b, height=1).pack()
  165. tkinter.Button(top, text="自定义函数", command=HS_ZDY, width=w_b, height=3).pack()
  166. top.protocol('WM_DELETE_WINDOW', close)
  167. top.mainloop()
  168. return HS_List