本文使用的是Tkinter方法制作文本显示窗口。
省流版请直接看后续的代码即可。
以下是实现功能的思路:
最近在为瞳孔追踪做一个简单的UI界面,所以用TK搭建了一个窗口,其中放置了几个按钮控件。
其中一个按钮控件想实现:当点击这个按钮后,把瞳孔追踪的说明文本内容弹窗展示出来。
那怎么实现呢?先查查有没有啥第三方库有具体函数实现这个功能吧.......好吧,不太好找。
先把文本内容读取出来,再考虑显示的问题,如下:
"""
以下代码的功能是,读取与该程序同一路径下的README.txt文件,并输出出来
这个方法是按行读取文本内容的
由于我们的文本文件是中文字符,说明要用UTF-8编码方式读取文本(不然读取出来是乱码)
所以在open函数里添加了"encoding='UTF-8'"
此外,我们的文本文件里或多或少会存在中文符号,在读取的时候可能会报错,从而让读取中止
所以要在open函数里再添加"errors='ignore'",表示忽略读取错误,保证文本读取不被中止
"""
with open("README.txt", "r", encoding='UTF-8', errors='ignore') as f: # 打开文件
data = f.read()
print(data)
读取是读取出来了,但是一行一行读取出来的,感觉不太行,决定把读取出来的文本整合一下,如下:
with open("README.txt", "r", encoding='UTF-8', errors='ignore') as f: # 打开文件
data = f.read()
data = str(data) # 保险一点,每读取一行内容就先转化为str格式(即使读取的内容就是str格式)
data = data + data # 把上一行内容与这一行内容整合
print(data)
最后再用TK做一个窗口,窗口里放一个标签控件,标签控件的文本内容就是我们读取出来的txt文件的内容,如下:
text_win = tk.Tk()
text_win.title('README')
with open("README.txt", "r", encoding='UTF-8', errors='ignore') as f: # 打开文件
data = f.read()
data = str(data)
data = data + data
textlabel = tk.Label(text_win, text=data, justify='left')
textlabel.pack()
把上述代码包装成一个自定义函数,作为按钮点击时的响应函数就行了,如下:
def show_text():
text_win = tk.Tk()
text_win.title('README')
with open("README.txt", "r", encoding='UTF-8', errors='ignore') as f: # 打开文件
data = f.read()
data = str(data)
data = data + data
textlabel = tk.Label(text_win, text=data, justify='left')
textlabel.pack()