大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
学习tkinter之余,实现了一个简单的计算器操作,能够满足页面输入参数和计算得到结果
下面是结果展示和源码记录:
源码如下:
import tkinter as tk
from tkinter import ttk
from tkinter import messagebox
class Windows(tk.Frame):
def __init__(self, root):
self.root = root # 窗口的变量
self.root.geometry("300x200") # 初始化窗口的大小
self.root.title("WIN") # 初始化窗口的名称
self.frame1 = tk.Frame()
self.frame2 = tk.Frame()
self.operate = tk.Frame()
self.lable_str = tk.StringVar(None, "6666") # 给标签一个初始值
self.num1 = tk.StringVar(None, "")
self.num2 = tk.StringVar(None, "")
self.operate_str = tk.StringVar(None, "+") # 操作符号
# self.operate = tk.StringVar(None, "")
self.lable_num1() # 显示lable标签
self.lable_num2() # 显示lable标签
self.lable_operate()
self.button_() # 显示button标签
# 图标的操作
def lable_num1(self):
tk.Label(self.frame1, text="输入第1个数字").grid(row=0, column=0)
tk.Entry(self.frame1, textvariable=self.num1).grid(row=0, column=1)
self.frame1.grid()
def lable_num2(self):
tk.Label(self.frame2, text="输入第2个数字").grid(row=1, column=0)
tk.Entry(self.frame2, textvariable=self.num2).grid(row=1, column=1)
self.frame2.grid()
def button_(self):
tk.Button(self.root, text="输出结果", command=self.button_operate, width=6,
heigh=2).grid()
def lable_operate(self):
tk.Label(self.operate, text="运算符").grid(row=3, column=0)
self.selector = ttk.Combobox(self.operate, values=["+", "-", "*", "/", "//"]) # 增加默认的值的操作
self.selector.grid(row=3, column=1)
self.selector.current(0) # 选择一个作为默认值
self.selector.bind("<<ComboboxSelected>>", self.selectlistenor) # 绑定一个事件,能够获取一个操作过程的信息
self.operate.grid()
def selectlistenor(self, *args):
print("当前的运算符号为:%s" % self.selector.get())
self.operate_str.set(self.selector.get()) # 将页面获取到的值赋给操作变量
# 实现的后台的操作
def button_operate(self):
num1 = int(self.num1.get())
num2 = int(self.num2.get())
operate = self.operate_str.get()
result = 0
print(num1)
print(num2)
if (0 == num1) and ("/" == operate or "//" == operate):
messagebox.showwarning("被除数不能为0")
return
if operate == "+":
result = num1 + num2
if operate == "-":
result = num1 - num2
if operate == "*":
result = num1 * num2
if operate == "/":
result = num1 / num2
if operate == "//":
result = num1 / num2
if num1 is None or num2 is None:
messagebox.showerror("\n提示:请输入要计算的数据")
return
messagebox.showinfo("%s" % (result))
if __name__ == '__main__':
root = tk.Tk() # 初始化一个窗口
Windows(root=root)
root.mainloop()
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168448.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...