使用Python Tkinter创建简单的注册表格

使用Python Tkinter创建简单的注册表格

Tkinter是一个用于开发GUI(图形用户界面)的Python库。我们使用Tkinter库创建UI(用户界面)应用程序,以创建窗口和所有其他图形用户界面。

如果使用Python 3.x(推荐),Tkinter会作为标准包随Python一起提供,因此我们不需要安装任何东西来使用它。

在Tkinter中创建注册表格之前,让我们先创建一个简单的Tkinter GUI应用程序。

创建一个简单的GUI应用程序

下面是仅通过导入Tkinter并设置其标题来创建一个窗口的程序 −

from tkinter import *
from tkinter import ttk
window = Tk()
window.title("欢迎使用TutorialsPoint")
window.geometry('325x250')
window.configure(background = "gray")
ttk.Button(window, text="你好,Tkinter").grid()
window.mainloop()

运行上述代码行后,您将看到输出类似于 −

使用Python Tkinter创建简单的注册表格

让我们理解上面的代码行 −

  • 首先,我们导入需要的所有模块,从Tkinter库导入了ttk和*(全部)。

  • 要创建应用程序的主窗口,我们使用Tk类_

  • window.title(),为我们的窗口应用程序设置标题。

  • window.geometry(),设置窗口的大小,window.configure(),设置其背景颜色。

  • ttk.Button()创建一个按钮。

  • ttk.Button(window, text=”你好,Tkinter”).grid() – 窗口表示Tk,因此它会显示在我们创建的窗口中,text-将在窗口中显示文本,grid将在网格中制作它。

  • Window.mainloop(),此函数调用窗口的无尽循环,因此将保持打开直到用户关闭它

现在让我们尝试扩展我们之前的示例,通过在代码中添加一些标签(标签是一个简单的小部件,可以显示文本或图像)和按钮(通常将按钮直接映射到用户动作,这意味着单击按钮应该触发某些操作)。

from tkinter import *
from tkinter import ttk
window = Tk()
window.title("欢迎使用TutorialsPoint")
window.geometry('400x400')
window.configure(background = "grey");
a = Label(window ,text = "名字").grid(row = 0,column = 0)
b = Label(window ,text = "姓氏").grid(row = 1,column = 0)
c = Label(window ,text = "电子邮件").grid(row = 2,column = 0)
d = Label(window ,text = "联系号码").grid(row = 3,column = 0)
a1 = Entry(window).grid(row = 0,column = 1)
b1 = Entry(window).grid(row = 1,column = 1)
c1 = Entry(window).grid(row = 2,column = 1)
d1 = Entry(window).grid(row = 3,column = 1)
def clicked():
    res = "欢迎来到 " + txt.get()
    lbl.configure(text= res)
btn = ttk.Button(window ,text="提交").grid(row=4,column=0)
window.mainloop()

运行上面的代码后,我们将看到类似于下面的输出屏幕 −

使用Python Tkinter创建简单的注册表格

现在让我们创建一个来自实际世界的东西,也许是一个贷款利率计算器。为此,我们需要知道一些项目(变量),如本金、贷款利率(r)、在s次付款后的余额(Bs)。要计算s次付款后的贷款余额,我们使用下面程序中的公式 −

Ps = ((1+r)^s.Bo)-(((1 + r)^s – 1)/r)*p

其中 −

Rate = 利率,如7.5%

i = 利率/100,年利率的小数

r = 期间率 = i/12

Po = 本金金额

Ps = s次付款后的余额

s = 每月付款数

p = 期间(每月)付款

以下是利率计算器程序,它将显示一个弹出窗口,用户可以在其中设置所需值(贷款金额,利率,分期数量),并借助Python tkinter库获得每月付款金额和剩余需支付的贷款金额。

from tkinter import *
fields = ('年利率', '分期数量', '贷款本金', '每月付款', '剩余贷款')
def monthly_payment(entries):
   # 期间利率:
   r = (float(entries['年利率'].get()) / 100) / 12
   print("r", r)
   # 贷款本金:
   loan = float(entries['贷款本金'].get())
   n = float(entries['分期数量'].get())
   remaining_loan = float(entries['剩余贷款'].get())
   q = (1 + r)** n
   monthly = r * ( (q * loan - remaining_loan) / ( q - 1 ))
   monthly = ("%8.2f" % monthly).strip()
   entries['每月付款'].delete(0,END)
   entries['每月付款'].insert(0, monthly )
   print("每月付款: %f" % float(monthly))
def final_balance(entries):
   # 期间利率:
   r = (float(entries['年利率'].get()) / 100) / 12
   print("r", r)
   # 贷款本金:
   loan = float(entries['贷款本金'].get())
   n = float(entries['分期数量'].get())
   q = (1 + r)** n
   monthly = float(entries['每月付款'].get())
   q = (1 + r)** n
   remaining = q * loan - ( (q - 1) / r) * monthly
   remaining = ("%8.2f" % remaining).strip()
   entries['剩余贷款'].delete(0,END)
   entries['剩余贷款'].insert(0, remaining )
   print("剩余贷款: %f" % float(remaining))
def makeform(root, fields):
   entries = {}
   for field in fields:
      row = Frame(root)
      lab = Label(row, width=22, text=field+": ", anchor='w')
      ent = Entry(row)
      ent.insert(0,"0")
      row.pack(side = TOP, fill = X, padx = 5 , pady = 5)
      lab.pack(side = LEFT)
      ent.pack(side = RIGHT, expand = YES, fill = X)
      entries[field] = ent
   return entries
if __name__ == '__main__':
   root = Tk()
   ents = makeform(root, fields)
   root.bind('<Return>', (lambda event, e = ents: fetch(e)))
   b1 = Button(root, text = '最终余额',
      command=(lambda e = ents: final_balance(e)))
   b1.pack(side = LEFT, padx = 5, pady = 5)
   b2 = Button(root, text='每月付款',
   command=(lambda e = ents: monthly_payment(e)))
   b2.pack(side = LEFT, padx = 5, pady = 5)
   b3 = Button(root, text = '退出', command = root.quit)
   b3.pack(side = LEFT, padx = 5, pady = 5)
   root.mainloop()

输出

使用Python Tkinter创建简单的注册表格

从上面我们可以看到,用户可以通过输入贷款金额、利率和分期数量来找到最终(剩余)余额和每月付款。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程