10分钟不到写一个最简单的py计算器窗体+逻辑

使vb6Tkinter写一个界面先

界面写好后,直接复制生成的界面代码:

#!/usr/bin/env python3
#-*- coding:utf-8 -*-

import os, sys
from tkinter import *
from tkinter.font import Font
from tkinter.ttk import *
#Usage:showinfo/warning/error,askquestion/okcancel/yesno/retrycancel
from tkinter.messagebox import *
#from tkinter import filedialog  #.askopenfilename()
#from tkinter import simpledialog  #.askstring()

class Application_ui(Frame):
    #这个类仅实现界面生成功能,具体事件处理代码在子类Application中。
    def __init__(self, master=None):
        super().__init__(master)
        self.master.title('Form1')
        self.master.geometry('707x238')
        self.createWidgets()

    def createWidgets(self):
        self.top = self.winfo_toplevel()

        self.style = Style()

        self.Text1Var = StringVar(value='Text1')
        self.Text1 = Entry(self.top, textvariable=self.Text1Var, font=('宋体',9))
        self.Text1.setText = lambda x: self.Text1Var.set(x)
        self.Text1.text = lambda : self.Text1Var.get()
        self.Text1.place(relx=0.057, rely=0.168, relwidth=0.092, relheight=0.139)

        self.Text2Var = StringVar(value='Text2')
        self.Text2 = Entry(self.top, textvariable=self.Text2Var, font=('宋体',9))
        self.Text2.setText = lambda x: self.Text2Var.set(x)
        self.Text2.text = lambda : self.Text2Var.get()
        self.Text2.place(relx=0.192, rely=0.168, relwidth=0.092, relheight=0.139)

        self.Text3Var = StringVar(value='Text3')
        self.Text3 = Entry(self.top, textvariable=self.Text3Var, font=('宋体',9))
        self.Text3.setText = lambda x: self.Text3Var.set(x)
        self.Text3.text = lambda : self.Text3Var.get()
        self.Text3.place(relx=0.339, rely=0.168, relwidth=0.115, relheight=0.139)

        self.Label1Var = StringVar(value='=')
        self.style.configure('TLabel1.TLabel', anchor='w', font=('宋体',9))
        self.Label1 = Label(self.top, text='=', textvariable=self.Label1Var, style='TLabel1.TLabel')
        self.Label1.setText = lambda x: self.Label1Var.set(x)
        self.Label1.text = lambda : self.Label1Var.get()
        self.Label1.place(relx=0.498, rely=0.168, relwidth=0.092, relheight=0.105)

        self.Text4Var = StringVar(value='Text4')
        self.Text4 = Entry(self.top, textvariable=self.Text4Var, font=('宋体',9))
        self.Text4.setText = lambda x: self.Text4Var.set(x)
        self.Text4.text = lambda : self.Text4Var.get()
        self.Text4.place(relx=0.645, rely=0.168, relwidth=0.16, relheight=0.139)

        self.Command1Var = StringVar(value='计算')
        self.style.configure('TCommand1.TButton', font=('宋体',9))
        self.Command1 = Button(self.top, text='计算', textvariable=self.Command1Var, command=self.Command1_Cmd, style='TCommand1.TButton')
        self.Command1.setText = lambda x: self.Command1Var.set(x)
        self.Command1.text = lambda : self.Command1Var.get()
        self.Command1.place(relx=0.645, rely=0.504, relwidth=0.16, relheight=0.172)


class Application(Application_ui):
    #这个类实现具体的事件处理回调函数。界面生成代码在Application_ui中。
    def __init__(self, master=None):
        super().__init__(master)

    def Command1_Cmd(self, event=None):
        #TODO, Please finish the function here!
        pass

if __name__ == "__main__":
    top = Tk()
    Application(top).mainloop()

将其复制进pycharm,并且命名为t1.py;

接着使用通义灵码:写提示词:刚才这段代码来至T1.py,它是一个简易计算器的界面, 现在我希望写一个T2.py ,形成后台的计算逻辑,TEXT1是操作数1,text2是计算符号,text3是操作数2,当点击按钮后,text4得到计算结果;

通义灵码会返回T2.py的代码如下:

def calculate(operand1, operator, operand2):
    """
    根据给定的操作数和运算符进行计算并返回结果。

    :param operand1: 第一个操作数
    :param operator: 运算符
    :param operand2: 第二个操作数
    :return: 计算结果
    """
    try:
        operand1 = float(operand1)
        operand2 = float(operand2)

        if operator == '+':
            return operand1 + operand2
        elif operator == '-':
            return operand1 - operand2
        elif operator == '*':
            return operand1 * operand2
        elif operator == '/':
            if operand2 != 0:
                return operand1 / operand2
            else:
                return "除数不能为零"
        else:
            return "无效的运算符"
    except ValueError:
        return "请输入有效的数字"

另外还会提示t1,做部分修改,内容如下:

#!/usr/bin/env python3
#-*- coding:utf-8 -*-

import os, sys
from tkinter import *
from tkinter.font import Font
from tkinter.ttk import *
#Usage:showinfo/warning/error,askquestion/okcancel/yesno/retrycancel
from tkinter.messagebox import *
#from tkinter import filedialog  #.askopenfilename()
#from tkinter import simpledialog  #.askstring()

# 导入计算逻辑模块
from T2 import calculate

class Application_ui(Frame):
    # 这个类仅实现界面生成功能,具体事件处理代码在子类Application中。
    def __init__(self, master=None):
        super().__init__(master)
        self.master.title('简易计算器')
        self.master.geometry('707x238')
        self.createWidgets()

    def createWidgets(self):
        self.top = self.winfo_toplevel()

        self.style = Style()

        self.Text1Var = StringVar(value='0')
        self.Text1 = Entry(self.top, textvariable=self.Text1Var, font=('宋体',9))
        self.Text1.setText = lambda x: self.Text1Var.set(x)
        self.Text1.text = lambda : self.Text1Var.get()
        self.Text1.place(relx=0.057, rely=0.168, relwidth=0.092, relheight=0.139)

        self.Text2Var = StringVar(value='+')
        self.Text2 = Entry(self.top, textvariable=self.Text2Var, font=('宋体',9))
        self.Text2.setText = lambda x: self.Text2Var.set(x)
        self.Text2.text = lambda : self.Text2Var.get()
        self.Text2.place(relx=0.192, rely=0.168, relwidth=0.092, relheight=0.139)

        self.Text3Var = StringVar(value='0')
        self.Text3 = Entry(self.top, textvariable=self.Text3Var, font=('宋体',9))
        self.Text3.setText = lambda x: self.Text3Var.set(x)
        self.Text3.text = lambda : self.Text3Var.get()
        self.Text3.place(relx=0.339, rely=0.168, relwidth=0.115, relheight=0.139)

        self.Label1Var = StringVar(value='=')
        self.style.configure('TLabel1.TLabel', anchor='w', font=('宋体',9))
        self.Label1 = Label(self.top, text='=', textvariable=self.Label1Var, style='TLabel1.TLabel')
        self.Label1.setText = lambda x: self.Label1Var.set(x)
        self.Label1.text = lambda : self.Label1Var.get()
        self.Label1.place(relx=0.498, rely=0.168, relwidth=0.092, relheight=0.105)

        self.Text4Var = StringVar(value='0')
        self.Text4 = Entry(self.top, textvariable=self.Text4Var, font=('宋体',9))
        self.Text4.setText = lambda x: self.Text4Var.set(x)
        self.Text4.text = lambda : self.Text4Var.get()
        self.Text4.place(relx=0.645, rely=0.168, relwidth=0.16, relheight=0.139)

        self.Command1Var = StringVar(value='计算')
        self.style.configure('TCommand1.TButton', font=('宋体',9))
        self.Command1 = Button(self.top, text='计算', textvariable=self.Command1Var, command=self.Command1_Cmd, style='TCommand1.TButton')
        self.Command1.setText = lambda x: self.Command1Var.set(x)
        self.Command1.text = lambda : self.Command1Var.get()
        self.Command1.place(relx=0.645, rely=0.504, relwidth=0.16, relheight=0.172)


class Application(Application_ui):
    # 这个类实现具体的事件处理回调函数。界面生成代码在Application_ui中。
    def __init__(self, master=None):
        super().__init__(master)

    def Command1_Cmd(self, event=None):
        # 获取输入值
        operand1 = self.Text1.text()
        operator = self.Text2.text()
        operand2 = self.Text3.text()
        
        # 调用计算函数
        result = calculate(operand1, operator, operand2)
        
        # 显示结果
        self.Text4.setText(str(result))


if __name__ == "__main__":
    top = Tk()
    Application(top).mainloop()

至此一个最简单的计算器就制作出来了,然后就可以打包分发出去了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值