鱼C论坛

 找回密码
 立即注册
查看: 1288|回复: 1

求助tkinter中text的get方法

[复制链接]
发表于 2020-4-7 15:28:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在用tkinter做小甲鱼视频35课的第二题时,比较text中内容是否较原文件中内容发生改变,如果没有发生改变,点“OK”按钮应该就什么事都不会发生,但是我每次点都跳转到发生改变的那里去了。。。。
按理来说text的get方法中有\n,文件的read方法也有\n,两者应该是一样的啊,不知道哪里出了问题。
C:\Users\Administrator\Desktop\1.png
  1. import tkinter as tk
  2. import tkinter.filedialog
  3. import tkinter.scrolledtext
  4. #创建主窗体
  5. window = tk.Tk()
  6. window.title("显示文件内容")
  7. window.geometry("500x400")
  8. #label和button的建立,并加入frame中
  9. frm = tk.Frame(window)
  10. frm.pack(fill = "x")
  11. var = tk.StringVar()
  12. l = tk.Label(frm, textvariable = var )
  13. l.pack(side = "left", padx = 5, pady = 5)
  14. def surf():
  15.     file_name = tk.filedialog.askopenfilename()
  16.     var.set("文件【%s】的内容如下:" % file_name)
  17.     #将文件导入entry
  18.     global f    #不设置全局变量后面没法引用
  19.     f = open(file_name, "r+")
  20.     for eachline in f.readlines():
  21.         st.insert("insert", eachline)
  22. b1 = tk.Button(frm, text = "浏览文件", command = surf)
  23. b1.pack(side = "right", pady = 5, padx = 5)
  24. #增强功能
  25. def change():
  26.     #此处需要去除get方法中自带的换行符吗?
  27.     new_string = st.get(0.0, "end")
  28.     if new_string != f.read():  
  29.         #设置子窗口
  30.         window_child = tk.Toplevel(window)
  31.         window_child.geometry("400x150")
  32.         window_child.title("警告")
  33.         l_child = tk.Label(window_child, text = "检测到文件内容发生改变,请选择以下操作:")
  34.         l_child.pack(side = "top", padx =20, pady = 20)
  35.         #安装三个并列的button
  36.         def cover_save():
  37.             f.seek(0)
  38.             f.write(st.get(0.0, "end"))
  39.             f.close()
  40.             window_child.destroy()
  41.         b_child1 = tk.Button(window_child, text = "覆盖保存", command = cover_save)
  42.         b_child1.place(x = 50, y = 75)
  43.         def not_save():
  44.             f.close()
  45.             window_child.destroy()
  46.         b_child2 = tk.Button(window_child, text = "放弃保存", command = not_save)
  47.         b_child2.place(x = 150, y = 75)
  48.         def elsewhere_save():
  49.             f_elsewhere_name = tk.filedialog.asksaveasfilename()
  50.             f_elsewhere = open(f_elsewhere_name, "w")
  51.             f_elsewhere.write(st.get(0.0, "end"))
  52.             f_elsewhere.close()
  53.             f.close()
  54.         b_child3 = tk.Button(window_child, text = "另存为", command = elsewhere_save)
  55.         b_child3.place(x = 250, y = 75)
  56. b2 = tk.Button(frm, command = change, text = "OK")
  57. b2.pack(side = "right", pady = 5, padx = 5)
  58. #scrolledtext
  59. st = tk.scrolledtext.ScrolledText(window, width = 45)
  60. st.pack(pady = 10)
  61. window.mainloop()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-7 15:29:42 | 显示全部楼层
不知道怎么发图片。。。小甲鱼的题目没传上来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-12 11:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表