摘要:一基本介紹使用的開發工具是中的這個工具比較好用,安裝步驟直接百度即可。原始代碼用到了幾個庫,用到了庫等,百度添加相應的庫即可。二具體代碼這樣就得到了圖形界面與代碼的結合。
1.使用的python開發工具是Anaconda中的Spyder
這個工具比較好用,安裝步驟直接百度即可。
2.原始代碼用到了幾個庫,用到了matplotlib庫等,百度添加相應的庫即可。
3.原始代碼的主要流程:main函數------>生成界面------>點擊按鈕調用輸入函數------->調用一元二次方程代碼函數。
這樣就得到了圖形界面與代碼的結合。
import tkinter as tkimport matplotlib.pyplot as pltfrom mpl_toolkits.axisartist.axislines import SubplotZeroimport numpy as npimport mathdef parabola(d): plt.rcParams["font.sans-serif"] = ["SimHei"] # 用來正常顯示中文標簽 plt.rcParams["axes.unicode_minus"] = False # 用來正常顯示負號 """生成畫布""" fig = plt.figure(1, (10, 10)) # 最終生成的圖片大小 axis = SubplotZero(fig, 1, 1, 1) # 把畫布分成1 * 1的格子, 把圖形放在第1格 fig.add_subplot(axis) """新建坐標軸""" axis.axis["xzero"].set_visible(True) axis.axis["yzero"].set_visible(True) """生成坐標箭頭""" axis.axis["xzero"].set_axisline_style("-|>") axis.axis["yzero"].set_axisline_style("-|>") axis.axis["top", "right", "left", "bottom"].set_visible(False) # 隱藏默認坐標軸 axis.grid(True, linestyle="-.") # 設置網格樣式 """設置圖形繪制范圍""" x_boundary = 20 # 圖形的邊界區間設置為x_boundary 的絕對值 granularity = 0.01 x = np.arange(-x_boundary, x_boundary, granularity) a, b, c = list(map(float, d.split(" "))) # 輸入a、b、c的值 y = a * pow(x, 2) + b * x + c # 計算y的值 axis.plot(x, y) # 添加標題 plt.title("y = ax^2 + bx + c/na={:.2f}, b={:.2f}, c={:.2f}".format(a, b, c), bbox=dict(facecolor="g", edgecolor="blue", alpha=0.65), fontsize="20") """根據a、b、c的值畫圖""" if a == 0: # 如果a == 0, 畫一條y = bx + c的線, 并提示a不要為0 plt.text(0, 0, r"$this/ is/ a/ line/ !!!$", fontdict={"size": "20", "color": "red"}) plt.text(0, -1, r"$please/ make/ sure/ the/ first/ number/ is/ not/ 0!!!$", fontdict={"size": "20", "color": "red"}) # 如果a == 0,則沒有極值, 坐標軸默認大小 extremum_x = 0 extremum_y = 0 else: # 計算極值點 extremum_x = - (b / (2 * a)) extremum_y = (4 * a * c - pow(b, 2)) / (4 * a) # 標注極值點 plt.scatter(extremum_x, extremum_y) # 根據a的符號更新描述信息 if a > 0: point_describe = "小" else: point_describe = "大" # 距離極值點1個單位打印極值點描述 plt.text(extremum_x, extremum_y - (a / a.__abs__()), "(%.2f, %.2f)是極%s值點" % (extremum_x, extremum_y, point_describe), fontdict={"size": "18", "color": "b"}) # 如果等于0的解存在, 則求根 delta = pow(b, 2) - 4 * a * c if delta < 0: # 沒有實根 # 距離極值點1個單位打印無實根 plt.text(extremum_x, extremum_y - 2 * (a / a.__abs__()), "此方程沒有實根", fontdict={"size": "18", "color": "red"}) elif delta == 0: # 有重根 x1 = (-b + math.sqrt(delta)) / (2 * a) # 標注y = 0的點 plt.scatter(x1, 0) # 距離實根1個單位打印坐標 plt.text(x1, 0 + 1 * (a / a.__abs__()), "(%.2f, 0)是唯一實根" % x1, fontdict={"size": "18", "color": "#0cf"}) else: # 有兩個實根 x1 = (-b + math.sqrt(delta)) / (2 * a) x2 = (-b - math.sqrt(delta)) / (2 * a) # 標注y = 0的點 plt.scatter(x1, 0) plt.scatter(x2, 0) # 距離實根1個單位打印第1個根的坐標 plt.text(x1, 0 - 1 * (a / a.__abs__()), "(%.2f, 0)是第一個根" % x1, fontdict={"size": "18", "color": "#000"}) # 距離實根1個單位打印第2個根的坐標 plt.text(x2, 0 + 1 * (a / a.__abs__()), "(%.2f, 0)是第二個根" % x2, fontdict={"size": "18", "color": "#000"}) """根據極值點動態調整坐標軸范圍""" axis.set_xlim([extremum_x - 10, extremum_x + 10]) axis.set_ylim([-extremum_y.__abs__() - 10, extremum_y.__abs__() + 10]) plt.text(extremum_x + 10, 0.5, "x", fontdict={"size": "18", "color": "#000"}) plt.text(0.5, extremum_y.__abs__() + 9.2, "y", fontdict={"size": "18", "color": "#000"}) """顯示圖片""" plt.show() def control_entry(): #獲取輸入值 d = entry_parabola.get() #調用函數 parabola(d) if __name__ == "__main__": # 初始化 root = tk.Tk() # 圖形界面的標題 root.title("一元函數畫圖") # 窗口的尺寸,分別對應的寬和高 root.geometry("250x100") # 文本提示 label_parabola = tk.Label(root, text="y=ax^2+bx+c,請輸入a,b,c的值,用空格隔開") # 隨機數展示的entry entry_parabola = tk.Entry(root) # 生成隨機數的按鈕,按下按鈕觸發函數 #執行標簽代碼 label_parabola.pack() #執行輸入框代碼 entry_parabola.pack() button_gen = tk.Button( root, text="點擊按鈕", command=control_entry) #執行按鈕代碼 button_gen.pack() # 保持圖形界面不被銷毀 root.mainloop()
直接百度:python打包 即可。
打包完成后,后綴為exe文件,如圖:
如此就可以制作一個簡單的python軟件。界面做的更美觀些,多添加幾個函數,就可以做成我的博客中的基本函數畫圖軟件。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/122498.html
Python GUI圖形用戶界面,指的是在Python中,采用圖形的形式,去操作相關的一些用戶界面,這么說的話,比較簡單的。大家想不想搞清楚,它到底本質上的樣子是什么呢?下面就給大家做個解答。 GUI介紹 圖形用戶界面(Graphical User Interface,簡稱GUI,又稱圖形用戶接口)是指采用圖形方式顯示的計算機操作用戶界面。圖形用戶界面是一種人與計算機通信的界面顯示格式,允...
摘要:在這個窗口之上,可以添加各種輸入框按鈕文本等,可以增加對各種動作的處理。事件要與特定的控件相綁定,比如按鈕有點擊事件,輸入框有按鍵事件,窗體有關閉事件等。 在大多數時候,我們都在黑黢黢的控制臺里執行 Python 腳本。這看起來很酷很 GEEK。但對于部分場景下的用戶來說,這樣就不大美觀和人性化了:我們需要交互更方便的圖形化產品,也就是 GUI (圖形用戶界面,Graphical Us...
摘要:引言學這么久了,一直想做個界面出來,最近發現有個內置庫,利用它可以很輕松做出一些簡易的界面,首先來看官方對的說明從上面描述中我們不難看出,不管你是系統,還是系統,它都可以生成相對應的操作界面,這就是所謂的跨平臺。 showImg(https://segmentfault.com/img/remote/1460000018532942?w=1078&h=1076); 0.引言 學Pyth...
摘要:下面,作者介紹了八種在中實現的可視化工具包,其中有些包還能用在其它語言中。當提到這些可視化工具時,我想到三個詞探索數據分析。還可以選擇樣式,它模擬了像和等很流行的美化工具。有很多數據可視化的包,但沒法說哪個是最好的。 showImg(https://segmentfault.com/img/remote/1460000019029121); 作者:Aaron Frederick 喜歡用...
摘要:自己選擇一個好的圖像背景填充畫布注意背景圖片可根據自己的喜好進行更換,還不趕緊定制一個屬于自己的煙花秀七夕總結以上便是博主給大家的七夕節禮物了,代碼不到行,但卻完成了一個超炫的效果。完整代碼可在公眾號后臺回復七夕獲取,最后祝大家七夕節快樂。 作者:xiaoyu 微信公眾號:Python數據科學 知乎:python數據分析師 showImg(https://segmentfault.c...
閱讀 1894·2021-11-15 11:46
閱讀 1091·2021-10-26 09:49
閱讀 1825·2021-10-14 09:42
閱讀 3383·2021-09-26 09:55
閱讀 838·2019-08-30 13:58
閱讀 1038·2019-08-29 16:40
閱讀 3473·2019-08-26 10:27
閱讀 610·2019-08-23 18:18