Python---tkinter之Text()

本文通过三个实例展示了Python Tkinter库中Text控件的使用方法,包括如何创建和操作文本区域、绑定事件实现链接功能及监测文本变化。

Text()介绍:点击打开链接



e.g.1 创建一个窗口组件,插入到text中

[python] view plain copy
print ?
  1. from tkinter import *  
  2.   
  3. root=Tk()  
  4.   
  5. text=Text(root,width=30,height=5)  
  6. text.pack()  
  7.   
  8. text.insert(INSERT,’I Love\n’)#INSERT表示在光标位置插入  
  9. text.insert(END,’FishC.com!\n’)#END表示在末尾处插入  
  10.   
  11.   
  12. def show():  
  13.     print(‘我被点了~’)  
  14.   
  15. #创建一个窗口组件,插入到text中  
  16. b1=Button(text,text=’点我点我’,command=show)  
  17. text.window_create(INSERT,window=b1)  
  18.   
  19.   
  20. mainloop()  
from tkinter import *

root=Tk()

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

text.insert(INSERT,'I Love\n')#INSERT表示在光标位置插入
text.insert(END,'FishC.com!\n')#END表示在末尾处插入


def show():
    print('我被点了~')





创建一个窗口组件,插入到text中

b1=Button(text,text='点我点我',command=show)
text.window_create(INSERT,window=b1)

mainloop()


e.g.2 事件绑定,链接到该网址

[python] view plain copy
print ?
  1. from tkinter import *  
  2. import webbrowser  
  3.   
  4. root=Tk()  
  5.   
  6. text=Text(root,width=30,height=5)  
  7. text.pack()  
  8.   
  9. text.insert(INSERT,’I love FishC.com!’)  
  10.   
  11. text.tag_add(’link’,‘1.7’,‘1.16’)  
  12. text.tag_config(’link’,foreground=‘blue’,underline=True)  
  13.   
  14. #事件绑定  
  15. def show_arrow_cursor(event):  
  16.     text.config(cursor=’arrow’)  
  17.   
  18. def show_xterm_cursor(event):  
  19.     text.config(cursor=’xterm’)  
  20.       
  21. def click(event):  
  22.     webbrowser.open(’http://www.fishc.com’)  
  23.   
  24. text.tag_bind(’link’,‘<Enter>’,show_arrow_cursor)  
  25. text.tag_bind(’link’,‘<Leave>’,show_xterm_cursor)  
  26. text.tag_bind(’link’,‘<Button-1>’,click)  
  27.   
  28. mainloop()  
from tkinter import *
import webbrowser

root=Tk()

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

text.insert(INSERT,'I love FishC.com!')

text.tag_add('link','1.7','1.16')
text.tag_config('link',foreground='blue',underline=True)





事件绑定

def show_arrow_cursor(event):
text.config(cursor=’arrow’)

def show_xterm_cursor(event):
text.config(cursor=’xterm’)

def click(event):
webbrowser.open(‘http://www.fishc.com‘)

text.tag_bind(‘link’,’<Enter>’,show_arrow_cursor)
text.tag_bind(‘link’,’<Leave>’,show_xterm_cursor)
text.tag_bind(‘link’,’<Button-1>’,click)

mainloop()

说明:当鼠标点击FishC.com时就会打开该链接


e.g.3检查输入的文本是否有修改

[python] view plain copy
print ?
  1. from tkinter import *  
  2. import hashlib  
  3.   
  4. root=Tk()  
  5.   
  6. text=Text(root,width=30,height=5)  
  7. text.pack()  
  8.   
  9. text.insert(INSERT,’I love FishC.com!’)  
  10. contents=text.get(’1.0’,END)  
  11.   
  12. def getSig(contents):  
  13.     m=hashlib.md5(contents.encode())  
  14.     return m.digest()  
  15.   
  16. sig=getSig(contents)  
  17.   
  18. def check():  
  19.     contents=text.get(’1.0’,END)  
  20.     if sig!=getSig(contents):  
  21.         print(‘警告:内容发生变化’)  
  22.     else:  
  23.         print(‘风平浪静~’)  
  24.   
  25. Button(root,text=’检查’,command=check).pack()  
  26.   
  27. mainloop()  
from tkinter import *
import hashlib

root=Tk()

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

text.insert(INSERT,'I love FishC.com!')
contents=text.get('1.0',END)

def getSig(contents):
    m=hashlib.md5(contents.encode())
    return m.digest()

sig=getSig(contents)

def check():
    contents=text.get('1.0',END)
    if sig!=getSig(contents):
        print('警告:内容发生变化')
    else:
        print('风平浪静~')

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

mainloop()

说明:把F删除了




### 如何使用 `python -m tkinter` 启动一个 Tkinter GUI 窗口 在 Python 中,可以通过命令行运行 `python -m tkinter` 来启动一个简单的 Tkinter GUI 测试窗口。此命令会直接调用 Tkinter 模块并显示一个基础的窗口,用于验证 Tkinter 是否正确安装以及是否可以正常运行[^1]。 以下是具体的操作方法和解释: #### 1. 使用命令行启动 Tkinter 打开终端或命令提示符,输入以下命令: ```bash python -m tkinter ``` 执行该命令后,将弹出一个带有 Tkinter 标志的小窗口。如果窗口成功显示,则说明系统的 Python 环境中已正确安装 Tkinter 模块,并且可以运行基于 Tkinter 的 GUI 应用程序。 #### 2. 如果需要手动创建一个简单的 Tkinter 窗口 除了通过命令行启动外,还可以编写一段简单的代码来手动创建一个 Tkinter 窗口。以下是一个示例代码: ```python import tkinter as tk # 创建主窗口 root = tk.Tk() # 设置窗口标题 root.title("Tkinter Test Window") # 设置窗口大小 root.geometry('300x200') # 添加一个标签组件 label = tk.Label(root, text="Hello, Tkinter!", bg='yellow', fg='blue', font=('Arial', 14)) label.pack(pady=20) # 运行主循环 root.mainloop() ``` 运行上述代码后,将显示一个带有文本 "Hello, Tkinter!" 的黄色背景窗口。这是最基础的 Tkinter GUI 示例[^2]。 #### 3. 常见问题及解决方法 - **问题:运行 `python -m tkinter` 后没有任何反应或报错** 可能的原因是系统中未正确安装 Tkinter 模块。尝试重新安装 Python 并确保在安装过程中选择了 Tkinter 支持。 - **问题:窗口无法关闭或线程未终止** 如果在复杂的应用程序中使用了多线程,可能需要显式地终止线程以避免程序卡死。例如,在用户关闭窗口时停止所有后台任务[^3]。 #### 4. 结合网络抓取与 Tkinter GUI 如果希望进一步扩展功能,可以将 Tkinter 与网络抓取技术(如 BeautifulSoup)结合,创建交互式应用程序。例如,抓取网页数据并在 GUI 中展示[^4]。 ```python import tkinter as tk import requests from bs4 import BeautifulSoup def fetch_data(): url = "https://example.com" response = requests.get(url) soup = BeautifulSoup(response.content, 'html.parser') title = soup.find('title').text result_label.config(text=f"Page Title: {title}") # 创建主窗口 root = tk.Tk() root.title("Web Scraper GUI") root.geometry('400x200') # 添加按钮和标签 button = tk.Button(root, text="Fetch Data", command=fetch_data) button.pack(pady=20) result_label = tk.Label(root, text="", wraplength=350) result_label.pack(pady=10) # 运行主循环 root.mainloop() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值