鱼C论坛

 找回密码
 立即注册
查看: 1359|回复: 5

[已解决]关于TKinter的一个问题

[复制链接]
发表于 2020-8-29 10:31:13 | 显示全部楼层 |阅读模式

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

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

x
from tkinter import *

root = Tk()

text = Text(root, width=20, height=5)
text.pack()

def check():
    text.insert(INSERT, "1")
    contents = text.get(1.0, END)
    print(contents)
    if contents == "1":
        text.insert(INSERT, "2")

Button(root, text="检查", command=check).pack()
mainloop()

请问一下,我的程序在第一次执行的时候,为什么在if那里不能接着执行下去,第一次content的值应该就是1啊!求大神解答。。。





最佳答案
2020-8-29 10:57:21
差不多先生air 发表于 2020-8-29 10:56
但是我想只让if那个语句只执行开头的一次,到第二次就不执行If里面的语句了,请问有什么办法可以实现吗
contents = text.get(1.0, 'end')[:-1]
刚才想错了,改成这样,把最后一位去掉
5`{}Z~U7)TV9T8G7V6Y6%J7.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-29 10:46:41 | 显示全部楼层
本帖最后由 疾风怪盗 于 2020-8-29 10:56 编辑

看你代码像是对的,为什么没有执行if是因为
if contents == "1":
判断为false
print(contents)
contents打印出啦好像是1和一个回车
为什么会有回车,不知道了,改成下面这样能运行,但是原因不清楚
contents = text.get(1.0, 'end')[:-1]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-29 10:56:18 | 显示全部楼层
疾风怪盗 发表于 2020-8-29 10:46
看你代码像是对的,为什么没有执行if是因为判断为false
contents打印出啦好像是1和一个回车
为什么会有回 ...

但是我想只让if那个语句只执行开头的一次,到第二次就不执行If里面的语句了,请问有什么办法可以实现吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-29 10:57:21 | 显示全部楼层    本楼为最佳答案   
差不多先生air 发表于 2020-8-29 10:56
但是我想只让if那个语句只执行开头的一次,到第二次就不执行If里面的语句了,请问有什么办法可以实现吗
contents = text.get(1.0, 'end')[:-1]
刚才想错了,改成这样,把最后一位去掉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-29 10:58:22 | 显示全部楼层
差不多先生air 发表于 2020-8-29 10:56
但是我想只让if那个语句只执行开头的一次,到第二次就不执行If里面的语句了,请问有什么办法可以实现吗

判断不为1就不执行了,你加了个2,应该来说是行的,现在就是问题不知道为什么1后面会出现一个回车
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-29 11:00:49 | 显示全部楼层
疾风怪盗 发表于 2020-8-29 10:57
刚才想错了,改成这样,把最后一位去掉

非常感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 03:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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