📜  使用 Tkinter 的比率计算器 GUI

📅  最后修改于: 2022-05-13 01:55:20.269000             🧑  作者: Mango

使用 Tkinter 的比率计算器 GUI

先决条件: Python GUI – tkinter

Tkinter是在Python中开发 GUI(图形用户界面)最常用的库。它是Python附带的 Tk GUI 工具包的标准Python接口。由于 Tk 和Tkinter在大多数 Unix 平台以及 Windows 系统上都可用,因此使用Tkinter开发 GUI 应用程序变得最快和最简单。

在本文中,我们将讨论如何使用Tkinter模块创建比率计算器。

什么是比率计算器?

它是根据给定的比率值计算分母的计算器。

解释:

Input:
a = 10
b = 20
c = 30
d = ?
a : d = c : d
Output:
value of d is 60.0

以下是计算器的外观:

使用的公式:

a/b = c/d

这里ab是给定的比率,而c是输入的值,我们必须找到它的比率,即分母d

循序渐进的方法:

  • 创建普通的 Tkinter窗口
Python3
# Import module
from tkinter import *
  
# Create object
root = Tk()
  
# Adjust size
root.geometry("400x400")
  
# Execute tkinter
root.mainloop()


Python3
# Import Module
from tkinter import *
  
# Create Object
root = Tk()
  
# Set height and width
width = 600
height = 250
  
# Set Geometry and min, max size
root.geometry(f"{width}x{height}")
root.maxsize(width, height)
root.minsize(width, height)
  
# Create Label
Label(root, text="Ratio Calculator", font=(
    "Helvetica", 18, "bold"), fg="blue").pack()
  
  
# Funtion will calculate the value of x
def ratio_calculator():
        # Get the value of spinbox using get() method
    s11 = int(s1.get())
    s22 = int(s2.get())
    s33 = int(s3.get())
  
    # Formule Used
    value = (s33*s22)/s11
  
    # change the text of label using config method
    value_of_x.config(text=value)
  
  
# Create Frame
frame = Frame(root)
frame.pack()
  
# Create Spin Boxes
s1 = Spinbox(frame, from_=0, to=10000000, width=10,
             font=("Helvetica", 14, "bold"))
s1.pack(side=LEFT, padx=10, pady=10)
s2 = Spinbox(frame, from_=0, to=10000000, width=10,
             font=("Helvetica", 14, "bold"))
s2.pack(side=LEFT, padx=10, pady=10)
s3 = Spinbox(frame, from_=0, to=10000000, width=10,
             font=("Helvetica", 14, "bold"))
s3.pack(side=LEFT, padx=10, pady=10)
  
# Add Another Label
Label(frame, text="X", width=10, font=("Helvetica", 
                                       14, "bold"),
      borderwidth=1, relief="solid").pack(side=LEFT, 
                                          padx=10, 
                                          pady=10)
  
# Add Another Frame
frame1 = Frame(root)
frame1.pack()
  
x_value = Label(frame1, text="Value of x:", 
                font=("Helvetica", 18, "bold"))
x_value.pack(side=LEFT)
  
value_of_x = Label(frame1, text="", 
                   font=("Helvetica", 18, "bold"))
value_of_x.pack(side=LEFT)
  
# Create Button
Button(root, text="Calculate", borderwidth=2, width=15, 
       font=("Helvetica", 14, "bold"), 
       command=ratio_calculator, fg="red", 
       bg="black").pack(pady=20)
  
# Execute Tkinter
root.mainloop()


输出:

  • 使用Frame()方法创建一帧并使用Spinbox()方法添加三个旋转框。

句法:

# Create Frame
frame = Frame(Object Name)

# Create Spin Box
# Enter Range
Spinbox(frame, from_= 0, to = 10,**attr)
  • 创建另一个框架,添加按钮、标签并创建一个名为ratio_calulator的函数,该函数将计算X的值。

句法:

# Create Frame
frame1 = Frame(Object Name)

# Create Label
Label(frame1, text="Enter Text",**attr)


# Create Button
Button(root,text="Enter Text",**attr)

下面是实现:

蟒蛇3

# Import Module
from tkinter import *
  
# Create Object
root = Tk()
  
# Set height and width
width = 600
height = 250
  
# Set Geometry and min, max size
root.geometry(f"{width}x{height}")
root.maxsize(width, height)
root.minsize(width, height)
  
# Create Label
Label(root, text="Ratio Calculator", font=(
    "Helvetica", 18, "bold"), fg="blue").pack()
  
  
# Funtion will calculate the value of x
def ratio_calculator():
        # Get the value of spinbox using get() method
    s11 = int(s1.get())
    s22 = int(s2.get())
    s33 = int(s3.get())
  
    # Formule Used
    value = (s33*s22)/s11
  
    # change the text of label using config method
    value_of_x.config(text=value)
  
  
# Create Frame
frame = Frame(root)
frame.pack()
  
# Create Spin Boxes
s1 = Spinbox(frame, from_=0, to=10000000, width=10,
             font=("Helvetica", 14, "bold"))
s1.pack(side=LEFT, padx=10, pady=10)
s2 = Spinbox(frame, from_=0, to=10000000, width=10,
             font=("Helvetica", 14, "bold"))
s2.pack(side=LEFT, padx=10, pady=10)
s3 = Spinbox(frame, from_=0, to=10000000, width=10,
             font=("Helvetica", 14, "bold"))
s3.pack(side=LEFT, padx=10, pady=10)
  
# Add Another Label
Label(frame, text="X", width=10, font=("Helvetica", 
                                       14, "bold"),
      borderwidth=1, relief="solid").pack(side=LEFT, 
                                          padx=10, 
                                          pady=10)
  
# Add Another Frame
frame1 = Frame(root)
frame1.pack()
  
x_value = Label(frame1, text="Value of x:", 
                font=("Helvetica", 18, "bold"))
x_value.pack(side=LEFT)
  
value_of_x = Label(frame1, text="", 
                   font=("Helvetica", 18, "bold"))
value_of_x.pack(side=LEFT)
  
# Create Button
Button(root, text="Calculate", borderwidth=2, width=15, 
       font=("Helvetica", 14, "bold"), 
       command=ratio_calculator, fg="red", 
       bg="black").pack(pady=20)
  
# Execute Tkinter
root.mainloop()

输出: