1 主体框架

主题框架部分还是一样的

 tkinter 笔记 :主体框架&窗口内容_UQI-LIUWJ的博客-CSDN博客

import tkinter as tk

window = tk.Tk()
#创建窗口

window.title('my window')
#窗口标题

window.geometry('500x200')
#窗口大小

2 创建输入框

e = tk.Entry(window,show='*')
e.pack()

        show='*' 表示在输入框中输入任何内容,都会显示为'*' (默认情况下输入什么,输入框中就显示什么)   

3 创建用于显示内容的文本框     

t = tk.Text(window,height=2)
t.pack()

4 定义触发事件时的函数

def insert_point():
    var = e.get()
    t.insert('insert',var)

def insert_end():
    var = e.get()
    t.insert('end',var)

'insert'表示对于文本框t中的内容,在光标所在的位置进行插入(默认光标在末尾)

'end'表示对于文本框t中的内容,在末尾位置进行插入

5 定义按钮

b1 = tk.Button(
    window,
    text="insert point",
    width=15,
    height=2,
    command=insert_point)
b1.pack()

b2 = tk.Button(
    window,
    text="insert end",
    command=insert_end)
b2.pack()

一个button 对应一个函数

6 激活窗口

window.mainloop()

7 展示效果

如果不选择光标&点击'insert point' 或者 点击'insert end’的话,就会每点一次在末尾添加‘12345’

 顺着上面的情况,比如我选择第二个12345中2和3之间的位置,然后点'insert point',那么有:

 

8 延申:如果用tk.Label 会怎么样呢?

我目前没有发现用tk.Label怎么实现'insert point'操作

把前面的t和函数定义的部分替换成如下内容:

t = tk.Label(window, 
    textvariable=var,   
    # 使用 textvariable可以变化,text的变量
            )
t.pack()

def insert_point():
    v = e.get()
    var.set(var.get()+v)

同时只留下b1

得到的效果和前面的'insert end‘差不多:

 参考内容:Entry & Text 输入, 文本框 - 窗口视窗 (Tkinter) | 莫烦Python (mofanpy.com)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐