Python中tkinter包如何提取文本框文字到函数之外?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中tkinter包如何提取文本框文字到函数之外?相关的知识,希望对你有一定的参考价值。

tk的文本框可以定义函数get到文本,如何赋值给该get函数外的变量?就是说我想get到文本框内容后赋值给函数外部的参数。

参考技术A 这个要看你的代码上下文,也就是具体的语境。
1、你可以用一个全局的变量,get到的内容写进这变量。外部函数直接访问这个变量即可。
2、也可以用一个全局的变量来接收你的文本框对象。那么就可以再外边函数,通过这个引用,来调用文本框的get方法本回答被提问者采纳
参考技术B 如果是文本框对象是Entry对象(就是比较矮比较长不能自定义大小的文本框):
变量 = 文本框对象.get()
如果文本框对象是Text对象(就是可以自定义大小的文本框):
变量 = 文本框对象.get(1.0, "end")

另外说一下,tkinter.ttk包里的组件比tkinter包的组件更精美,建议使用tkinter.ttk包,用法一样的
参考技术C refreshTimeVar = tk.StringVar()
refreshEntry = tk.Entry(window, show=None,width=10,textvariable=refreshTimeVar) # show可见和不可见
refreshTimeVar.set(str(seconds))
refreshEntry['state'] = 'normal'
refreshEntry.place (x = 90 , y = 52)
这是我写的一部分

Python for Tkinter

# tkinter常用组件
- 按钮
- button(按钮组件)
- RadioButton(单选框组件)
- CheckButton(选择按钮组件)
- Listbox(列表框组件)

- 文本输入组件
- Entry(单行文本框组件)
- Text(多行文本框组件)

- 标签组件
- Label(标签组件,可以显示图片和文字)
- Message(标签组件,可以根据内容将文字换行)

- 菜单
- Menu(菜单组件)
- MenuButton(菜单按钮组件,可以使用Menu代替)

- 滚动条
- scale(滑块组件)
- Scrollbar(滚动条组件)

- 其他组件
- Canvas(画布组件)
- Frame(框架组件,将多个组件编组)
- Toplevel(创建子窗口容器组件)

##组件布局
- 三种布局
- pack布局(按照方位布局)
- 最简单,代码最少,挨个摆放,默认从上到下,系统自动摆放
- 通用方式: 组件对象.pack(设置, , ,)
- side: 停靠方位,可选值为LEFT,TOP,RIGHT,BOTTON
- fill: 填充方式,X, Y, BOTH, NONE
- expande: YES/NO
- anchor: N, E, S, W, CENTER
- ipadx: x方向的内边距
- ipady: y。。
- padx: x方向的外边界
- pady: y。。。
- place布局(按照坐标布局)
- 明确方位的摆放
- 相对位置布局,随意改变窗口大小会导致混乱
- 使用place函数,分为绝对布局和相对布局
- 绝对布局使用x,y参数
- 相对布局使用relx,rely,relheight,relwidth
- grid(网格布局)
- 通用方式: 组件对象.grid(设置, , ,)
- 利用row, column编号,都是从0开始
- sticky: N,E,S,W表示上下左右,用来决定组件从哪个方向开始
- 支持ipadx,padx等参数,跟pack函数含义一样
- 支持rowspan,columnspan,表示跨行,跨列数量

## 消息机制
- 消息的传递机制
- 自动发出事件/消息
- 消息由系统负责发送到队列
- 由相关组件进行绑定/设置
- 后端自动选择感兴趣的事件并做出相应反应
- 消息格式
- <[modifier-]---type-[detail]>
- <Button-1]>: Button表示一个按钮事件,1代表的是鼠标左键,2代表中键
- <KeyPress-A>: 键盘A键位
- <Control-shift-KeyPress-A>: 同时按下Control,shift,A三个键位


##Tkinter的绑定
- bind_all: 全局范围的绑定,默认的是全局快捷键,比如F1是帮助文档
- bind_class: 接收三个参数,第一个是类名,第二个是事件,第三个是操作
- bind: 单独对某一个实例绑定
- unbind: 解绑,需要一个参数,即你要解绑的那个事件
### Entry
- 输入框,功能单一
- entry["show"] = "*",设置遮挡字符
- 案例:输入框

## 菜单
- 普通菜单
- 第一个Menu类定义的是parent
- add_command 添加菜单项,如果菜单是顶层菜单,则从左向右添加,否则就是下拉菜单
- label: 指定菜单项名称
- command: 点击后响应相对应的函数
- acceletor: 快捷键
- underline: 制定是否菜单信息下有横线
- menu: 属性指定使用哪个作为顶级菜单
- 级联菜单
- add_cascade: 级联菜单,作用是引出后面的菜单
- add_cascade的menu属性: 指明把菜单级联到哪个菜单上
- label: 名称
- 过程
1. 建立menu实例
2. add_command
3. add_cascade

##弹出式菜单
- 弹出式菜单也叫上下文菜单
- 流程
1. 建立菜单并向菜单中添加各种功能
2. 监听鼠标事件
3. 如果右键点击,则根据位置判断弹出
4. 调用Menu的pop方法
- add_separator: 添加分割符

##canvas画布
- 画布: 可以自由的在画布上面绘制图形的一个舞台
- 通常用create_xx(说明:xx=对象类型),例如line,rectangle

画布五角星案例:
import tkinter
import math as m

# 创建面板
baseFrame = tkinter.Tk()

# 创建画布
cvc = tkinter.Canvas(baseFrame, width=300, height=300, background="gray")
cvc.pack()

center_x = 150
center_y = 150
r = 150

# 依次存放五个点的位置
points = [
# 左上点
center_x - int(r * m.sin(2 * m.pi / 5)),
center_y - int(r * m.cos(2 * m.pi / 5)),

# 右上点
center_x + int(r * m.sin(2 * m.pi / 5)),
center_y - int(r * m.cos(2 * m.pi / 5)),

# 左下点
center_x - int(r * m.sin(m.pi / 5)),
center_y + int(r * m.cos(m.pi / 5)),

# 顶点
center_x,
center_y - r,

# 右下点
center_x + int(r * m.sin(m.pi / 5)),
center_y + int(r * m.cos(m.pi / 5)),
]

# 创建一个多边形
cvc.create_polygon(points, outline="white", fill="red")

# 启动消息循环
baseFrame.mainloop()





















































































































































以上是关于Python中tkinter包如何提取文本框文字到函数之外?的主要内容,如果未能解决你的问题,请参考以下文章

Python for Tkinter

tkinter基础-输入框文本框

python 用Tkinter.Text设置了文本框之后如何获取输入内容

如何更改文本框的大小,以便它可以使用tkinter和python在UI上水平扩展

Python3 tkinter基础 Entry get 点击按钮 将输入框中文字输出到控制台

Python3 tkinter初级