python-GUI(tkinter)基本用法之計算圓的周長

from tkinter import *
from tkinter.messagebox import *   # 系統彈窗消息
class Calculator:
    def __init__(self):   # 構造函數,初始化GUI界面
        # 先創建一個窗體 --self.frame
        self.frame = Tk()
        # 添加一個按鈕
        self.Button_call = Button(self.frame, text="計算", command=self.get_result)
        self.Button_call.place(x=500, y=50)

        # 爲窗體增加標題
        self.frame.title("計算圓的周長和麪積")
        # 指定窗體大小 根據像素
        self.frame.geometry("800x650+450+300")
        # 不允許改變窗體大小
        self.frame.resizable(0, 0)
        # 爲窗體指定背景
        self.frame["bg"] = "lightgray"

        # 添加一個Label 標籤
        self.Label_input = Label(self.frame, text="請輸入圓的半徑:", background="lightgray", foreground="blue",
                                 font=("微軟雅黑", 12, "bold"))
        self.Label_input.place(x=50, y=50)

        # 添加輸入的文本框
        self.var_radius = StringVar()
        self.Entry_input = Entry(self.frame, textvariable=self.var_radius, font=("微軟雅黑", 12, "bold"), width=30)
        self.Entry_input.place(x=180, y=50)

        # 添加圓的周長Label
        self.Label_perimeter = Label(self.frame, text="圓的周長:", background="lightgray", foreground="blue",
                                 font=("微軟雅黑", 12, "bold"))
        self.Label_perimeter.place(x=100, y=110)

        self.var_perimeter = StringVar()
        self.Label_perimeter_result = Label(self.frame, textvariable=self.var_perimeter, text="圓的周長的結果", background="lightgray", foreground="blue",
                                     font=("微軟雅黑", 12, "bold"))
        self.Label_perimeter_result.place(x=200, y=110)

        # 添加圓的面積 Label
        self.Label_area = Label(self.frame, text="圓的面積:", background="lightgray", foreground="blue",
                                 font=("微軟雅黑", 12, "bold"))
        self.Label_area.place(x=100, y=150)

        self.var_area = StringVar()
        self.Label_area_result = Label(self.frame, textvariable=self.var_area, text="圓的面積的結果", background="lightgray", foreground="blue",
                                font=("微軟雅黑", 12, "bold"))
        self.Label_area_result.place(x=200, y=150)

    def check_input(self, radius: str):
        """
         判斷一個字符是否爲數字
        :param radius: 要判斷的字符串
        :return:是數字,返回ture ;
        """
        if radius.replace(".", "").isdigit():
            return True
            # 計算元的周長和麪積
            # circle_perimeter = 2 * PI * radius
            # circle_area = PI * radius * radius
        else:
            return False

    def get_perimeter(self, radius: float):
        """
        獲取圓的周長
        :param radius:
        :return:
        """
        PI = 3.1415926
        circle_perimeter = 2 * PI * radius
        return circle_perimeter

    def get_area(self, radius: float):
        """
        獲取圓的面積
        :param radius:
        :return:
        """
        PI = 3.1415926
        circle_area = PI * radius * radius
        return circle_area

    # 獲取計算的結果
    def get_result(self):
        print("點擊了計算按鈕")
        # showinfo("系統消息", "")

        # 獲得文本框輸入的半徑
        radius = self.var_radius.get()

        # 驗證半徑
        if self.check_input(radius):
         #   showinfo("系統消息", "半徑 符合要求")
            circle_perimeter = self.get_perimeter(float(radius))
            circle_area = self.get_area(float(radius))
            # 賦值
            self.var_perimeter.set("%.2f" % circle_perimeter)
            self.var_area.set("%.2f" % circle_area)

        else:
            showinfo("系統消息", "半徑 不符合要求")


        # 顯示窗口
    def show_a(self):
         self.frame.mainloop()

if __name__ == "__main__":
    # 根據類實例化一個對象
    this_gui = Calculator()
    # 展示窗體
    this_gui.show_a()

輸出結果:

學習心得:

1.先創建窗體 self.frame = Tk()

2. 創建一個Label標籤(提示語)Label()

3.接着創建 Label 標籤後面的文本提示框 Stringvar()   / Entry()

4. 創建一個按鈕Button()  ,並將按鈕綁定到一個處理函數

5.輸出: 最後需要顯示窗口 self.frame.mainloop()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章