使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()
至此一个最简单的计算器就制作出来了,然后就可以打包分发出去了。