当前位置: 首页 > news >正文

TK: 计算三角形的面积

TK代码,将textvariable绑定,改为直接使用text属性设置。以下是修改后的代码,关键改动已用注释标出:

TK

import tkinter as tk
import tkinter.ttk as ttk
import tkinter.messagebox as msgbox  # 添加缺失的导入class app(tk.Frame):def __init__(self):self.root = tk.Tk()super().__init__(self.root)self.root.geometry('300x224')self.root.title('计算三角形的面积')self.create_widgets()self.mainloop()def create_widgets(self):# 底边输入区域self.label1 = tk.Label(text='底', font=('Segoe UI', 9), anchor='w')self.label1.place(x=40, y=24, width=80, height=24)self.entry1 = tk.Entry(font=('Segoe UI', 9))self.entry1.place(x=88, y=24, width=80, height=24)self.entry1.insert(0, '11')  # 设置初始值# 高度输入区域self.label2 = tk.Label(text='高', font=('Segoe UI', 9), anchor='w')self.label2.place(x=40, y=72, width=80, height=24)self.entry2 = tk.Entry(font=('Segoe UI', 9))self.entry2.place(x=88, y=72, width=80, height=24)# 直接设置text属性self.entry2.insert(0, '')  # 初始为空# 结果显示区域self.label3 = tk.Label(text='面积:', font=('Segoe UI', 9), anchor='w')self.label3.place(x=40, y=120, width=224, height=24)# 按钮区域self.button1 = tk.Button(text='计算',font=('Segoe UI', 9),command=self.button1_Command)self.button1.place(x=24, y=176, width=80, height=24)self.button2 = tk.Button(text='清空',font=('Segoe UI', 9),command=self.button2_Command)self.button2.place(x=112, y=176, width=80, height=24)self.button3 = tk.Button(text='退出',font=('Segoe UI', 9),command=self.button3_Command)self.button3.place(x=200, y=176, width=80, height=24)def button1_Command(self):"""计算三角形面积"""try:# 直接从Entry获取文本值base = float(self.entry1.get())height = float(self.entry2.get())area = 0.5 * base * heightself.label3.config(text=f'面积:{area:.2f}')except ValueError:msgbox.showerror("输入错误", "请输入有效的数字")def button2_Command(self):"""清空输入和结果"""# 直接操作Entry组件清空内容self.entry1.delete(0, tk.END)self.entry2.delete(0, tk.END)self.label3.config(text='面积:')def button3_Command(self):"""退出程序"""self.root.destroy()
app()

主要修改点说明:

  1. 移除所有StringVar变量
    • 删除了self.entry1_valueself.entry2_value的定义
    • 删除了所有textvariable属性绑定
  2. 直接使用text属性设置初始值
    • 使用entry.insert(0, '初始值')替代StringVar.set()
    • 使用entry.get()替代StringVar.get()
  3. 调整清空逻辑
    • 使用entry.delete(0, tk.END)替代StringVar.set('')
    • 直接操作组件而不是通过中间变量
  4. 修复导入问题
    • 添加了缺失的tkinter.messagebox导入
  5. 代码结构优化
    • 简化了组件创建时的参数传递
    • 使用更紧凑的语法结构
    • 保持所有原有功能不变
      这种修改方式完全移除了Tkinter变量绑定机制,直接通过组件方法操作界面元素。虽然失去了自动双向绑定的优势,但代码更直接简单,适合小型应用。对于需要频繁数据绑定的复杂应用,建议保留textvariable机制。
http://www.rkmt.cn/news/79963.html

相关文章:

  • SAT 辅导机构怎么选?2025 年高性价比机构测评指南(附避坑攻略) - 品牌测评鉴赏家
  • SAT 辅导机构怎么选?2025 年高性价比机构测评与避坑指南(附收费标准与选课攻略) - 品牌测评鉴赏家
  • 2025年铁路地铁电力电缆生产厂家推荐:中低压、低压、中压、变频、聚乙烯绝缘电缆厂家精选指南 - 品牌2026
  • 2025电缆品牌精选:中国电缆一线品牌推荐及十大知名品牌推荐 - 品牌2026
  • langchain4j 学习系列(7)-文本分类
  • 实用指南:OCR与AI赋能医药资质审核的全流程自动化方案
  • Spark的运行架构,RDD自带容错机制分析 - f
  • 解码多态、虚函数——动态行为扩展
  • 2025托福培训机构选择指南:精准匹配你的提分需求
  • 2025托福辅导机构优选指南:从口碑到提分的全方位攻略
  • 使用VSCode开发ESP32单片机基于MicroPython-12.8
  • 过碳酸钠选购指南:优质厂家推荐及欧盟标准供应商盘点
  • DBLens 连接数怎么限制?免费 3 个,订阅随便加
  • 轮询相关算法
  • 数据仓库和数据集市之ODS、CDM、ADS、DWD、DWS - 教程
  • 托福备考黄金期,如何精准锁定高性价比机构?
  • 2025年12月广州番禺佛山网站建设,营销网站建设,网站建设推广公司品牌推荐,定制能力与交付效率三维测评
  • 2025托福培训机构怎么选?6大高性价比机构测评+避坑指南
  • 2025雅思一对一机构推荐排行榜:精准提分攻略,考研必看!
  • 2025年12月深圳公装装修公司最新推荐:深圳办公室装修设计、深圳酒店装修设计、深圳展厅装修设计、深圳写字楼装修设计、深圳厂房装修设计、深圳公寓装修设计、八匹马装饰成企业优选
  • 12月8日总结 - 作业----
  • 微信小工具的uniapp-vue社团活动管理的高效的系统yagfy
  • 仿everything制作搞笑检索设计(是的,我没有打错字)
  • 平面上两点和方位角计算目标交点的算法(应该可用于 MC 末地传送门三角定位)
  • 大模型完整架构
  • 102302114_比山布努尔兰_作业4
  • Redis提供的原子性命令
  • 2025年12月室内水上乐园厂家推荐:山东汇川,儿童水上乐园、大型水上乐园、主题水上乐园、室外水上乐园、恒温泳池、室 泳池、全场景适配新标杆
  • Semaphore、CountDownLatch、ReentrantLock使用场景简单说说
  • 杂题选记