鱼cpython学习者 发表于 2021-6-8 19:20:25

tkinter的Text

tkinter的Text组件怎么暂时屏蔽用户输入,过一会再取消屏蔽?

Twilight6 发表于 2021-6-8 19:30:53



过一会是什么意思?描述明确些

比如说满足什么条件或者按下按钮后开启,什么条件又关闭

鱼cpython学习者 发表于 2021-6-8 20:40:40

Twilight6 发表于 2021-6-8 19:30
过一会是什么意思?描述明确些

比如说满足什么条件或者按下按钮后开启,什么条件又关闭

比如说实现一个函数,先屏蔽用户的输入,再插入一些内容,最后取消屏蔽

Twilight6 发表于 2021-6-8 20:45:17

鱼cpython学习者 发表于 2021-6-8 20:40
比如说实现一个函数,先屏蔽用户的输入,再插入一些内容,最后取消屏蔽



那这样即可:

from tkinter import *
from time import sleep
from threading import Thread


def temp():
    if var.get() == "屏蔽":
      var.set("开启")
      text.config(state=DISABLED)
    else:
      var.set("屏蔽")
      text.config(state=NORMAL)


root = Tk()

var = StringVar()
var.set("屏蔽")

text = Text(root)
text.grid()

button = Button(root, textvariable=var, command=temp)
button.grid()

mainloop()

鱼cpython学习者 发表于 2021-6-8 20:58:57

Twilight6 发表于 2021-6-8 20:45
那这样即可:

可是这样又无法插入内容,该怎么办?

鱼cpython学习者 发表于 2021-6-8 21:02:34

Twilight6 发表于 2021-6-8 21:02
你开启就可以插入的啊,屏蔽就无法插入

好的,谢谢

Twilight6 发表于 2021-6-8 21:03:00

鱼cpython学习者 发表于 2021-6-8 21:02
好的,谢谢



哦,我懂你意思了,我理解错你的意思,骚等

Twilight6 发表于 2021-6-8 21:10:58

鱼cpython学习者 发表于 2021-6-8 21:02
好的,谢谢



你先点屏蔽,然后在下面输入框输入想插入的内容即可在屏蔽状态下插入内容

from tkinter import *
from time import sleep
from threading import Thread


def temp():
    if var.get() == "屏蔽":
      var.set("开启")
      text.config(state=DISABLED)
    else:
      var.set("屏蔽")
      text.config(state=NORMAL)

def insert_data():
    text.config(state=NORMAL)
    text.insert(END,entry.get())
    text.config(state=DISABLED)

root = Tk()

var = StringVar()
var.set("屏蔽")

text = Text(root)
text.grid(columnspan=2)

label = Label(root, text="请输入需要插入的内容:")
label.grid(row=1, column=0, sticky=E)

entry = Entry(root)
entry.grid(row=1, column=1, sticky=W)

insert_b = Button(root, text="插入", command=insert_data)
insert_b.grid(row=2, column=0)

button = Button(root, textvariable=var, command=temp)
button.grid(row=2, column=1)

mainloop()
页: [1]
查看完整版本: tkinter的Text