鱼C论坛

 找回密码
 立即注册
查看: 2364|回复: 11

[已解决]Tkinter的文本框总内容如何保存成变量再使用

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

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

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

x
看过很多都是button绑定个函数,可以打印,可以输出到文本,但如何将这个变量返回呢?这个函数单独调用也不可能,我做过的唯一是在关闭窗口后可以保存,但那不是我想要的
最佳答案
2020-8-30 18:05:09
cdzjf 发表于 2020-8-30 14:13
我知道是全局变量,但我用你的代码,在函数外没法调用这个变量啊



代码运行时候在次调用要使用线程啊,否则你代码实际上主线程已经执行完毕了,肯定不能调用的啊

而且我这里设置 Label 的 text 值就是在函数外调用 result 啊,你基础还有待提高呀
from tkinter import *
from threading import Thread
from time import sleep


def set_value():
    global result
    result = text.get(0.0, END)
    print(result)

def set():
    v.set(result)

root = Tk()

v = StringVar()

text = Text(root)
text.pack(padx=5, pady=5)

Button(root, text='获取内容,赋值变量', command=set_value).pack(padx=5, pady=5)
Button(root, text='设置变量', command=set).pack(padx=5,pady=5)

Label(root,textvariable=v).pack(padx=5,pady=5)

result = None

def run():
    while True:
        print(f'result当前的值为:{result}')
        sleep(1)

t = Thread(target=run)
t.start()

mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-28 11:28:38 | 显示全部楼层
没看懂,tkinter没用过,只用过pyside2,但应该也有textchange的动作事件吧,绑定动作事件,一旦文本内容发生改变,就把text内容保存到变量就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-28 12:10:05 | 显示全部楼层
没看懂你的需求
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-28 12:41:44 | 显示全部楼层

类似这样呗?
from tkinter import *

def set_value():
    global result
    result = text.get(0.0,END)
    print(result)


root = Tk()

text = Text(root)
text.pack(padx=5,pady=5)

Button(root,text='获取内容,赋值变量',command=set_value).pack(padx=5,pady=5)

result = None

mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-28 13:13:18 | 显示全部楼层

你说的这个和我说的一样,result 在函数里,在函数外怎么使用这个result 变量,你这个只能打印出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-28 13:20:38 | 显示全部楼层

input接收键盘输入保存到变量,我这个用text文本框接收键盘输入保存成一个变量来使用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-28 20:43:20 | 显示全部楼层
cdzjf 发表于 2020-8-28 13:13
你说的这个和我说的一样,result 在函数里,在函数外怎么使用这个result 变量,你这个只能打印出来



这个就直接可以使用了啊,这里已经达到你的需求了,我只是没有写使用而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-28 20:55:08 | 显示全部楼层
cdzjf 发表于 2020-8-28 13:13
你说的这个和我说的一样,result 在函数里,在函数外怎么使用这个result 变量,你这个只能打印出来

from tkinter import *


def set_value():
    global result
    result = text.get(0.0, END)
    print(result)

def set():
    v.set(result)

root = Tk()

v = StringVar()

text = Text(root)
text.pack(padx=5, pady=5)

Button(root, text='获取内容,赋值变量', command=set_value).pack(padx=5, pady=5)
Button(root, text='设置变量', command=set).pack(padx=5,pady=5)

Label(root,textvariable=v).pack(padx=5,pady=5)

result = None

mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-30 10:27:06 | 显示全部楼层

result这个变量始终在函数内部,想在其他地方,也就是函数外调用都不可以啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-30 12:03:12 From FishC Mobile | 显示全部楼层
cdzjf 发表于 2020-8-30 10:27
result这个变量始终在函数内部,想在其他地方,也就是函数外调用都不可以啊

你是没理解全局变量和局部变量吧 这里的 result 为全局变量啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-30 14:13:02 | 显示全部楼层
Twilight6 发表于 2020-8-30 12:03
你是没理解全局变量和局部变量吧 这里的 result 为全局变量啊

我知道是全局变量,但我用你的代码,在函数外没法调用这个变量啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-30 18:05:09 | 显示全部楼层    本楼为最佳答案   
cdzjf 发表于 2020-8-30 14:13
我知道是全局变量,但我用你的代码,在函数外没法调用这个变量啊



代码运行时候在次调用要使用线程啊,否则你代码实际上主线程已经执行完毕了,肯定不能调用的啊

而且我这里设置 Label 的 text 值就是在函数外调用 result 啊,你基础还有待提高呀
from tkinter import *
from threading import Thread
from time import sleep


def set_value():
    global result
    result = text.get(0.0, END)
    print(result)

def set():
    v.set(result)

root = Tk()

v = StringVar()

text = Text(root)
text.pack(padx=5, pady=5)

Button(root, text='获取内容,赋值变量', command=set_value).pack(padx=5, pady=5)
Button(root, text='设置变量', command=set).pack(padx=5,pady=5)

Label(root,textvariable=v).pack(padx=5,pady=5)

result = None

def run():
    while True:
        print(f'result当前的值为:{result}')
        sleep(1)

t = Thread(target=run)
t.start()

mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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