# -*- coding: utf-8 -*-
import tkinter as tk
from tkinter import ttk
from tkinter import messagebox
class GeneratedUI:
"""生成的Tkinter界面"""
def __init__(self, master=None):
# 创建主窗口
self.master = master if master else tk.Tk()
self.master.title("文本框")
self.master.geometry("500x350+700+100")
self.master.configure(bg='white')
# 创建界面组件
self.组件布局()
# 给日志添加一个滚动条 开始
# 1. 先创建滚动条
self.scrollbar_1 = tk.Scrollbar(
self.master,
orient="vertical", # 垂直滚动条
name="滚动条_日志"
)
self.scrollbar_1.place(
x=478.0, # 文本框宽度455 + x坐标23 = 478,刚好贴在文本框右侧
y=63.0, # 与文本框y坐标一致
width=15.0,
height=274.0 # 与文本框高度一致
)
# 2. 创建文本框,并关联滚动条
self.text_1 = tk.Text(
self.master,
bg="white",
fg="black",
font=('微软雅黑', 10),
name="文本框_日志",
yscrollcommand=self.scrollbar_1.set # 关联滚动条
)
self.text_1.place(
x=23.0,
y=63.0,
width=455.0,
height=274.0
)
# 3. 设置滚动条控制文本框
self.scrollbar_1.config(command=self.text_1.yview)
# 给日志添加一个滚动条 结束
self.master.nametowidget('按钮_开始').config(command=self.开始)
self.master.nametowidget('按钮_清空').config(command=self.清空)
self.master.nametowidget('按钮_复制内容').config(command=self.复制内容)
self.序号 = 0
def 开始(self):
print(454554)
self.序号 +=1
self.master.nametowidget('文本框_日志').insert(tk.END, f'末尾追加{self.序号}\n') # 文本末尾
self.master.nametowidget('文本框_日志').see(tk.END) # 滚动到最后一行
# 获取文本框最后一行的索引(格式为 "行号.列号")
last_index = self.master.nametowidget('文本框_日志').index(tk.END)
# 分割索引字符串,提取行号并转换为整数
总行数 = int(last_index.split('.')[0]) - 1 # -1 是因为END指向最后一行的末尾,行号会多1
if 总行数 == 3000: # 回血
self.清空() # 调用 “清空”函数
def 清空(self):
self.master.nametowidget('文本框_日志').delete('1.0',tk.END) # 删除所有内容
def 复制内容(self):
获取的内容 = self.master.nametowidget('文本框_日志').get('1.0',tk.END).strip('\n') # 获取所有的内容; rstrip('\n') 表示:删除首尾的"\n"
# print(获取的内容)
# 把内容放至剪辑板
self.master.clipboard_clear() # 清空剪贴板
self.master.clipboard_append(获取的内容)
self.master.update() # 必须加,否则不生效
# messagebox.showinfo("温馨提示:","内容已置剪辑板,Ctrl+V 使用!")
# messagebox.showerror("温馨提示:","内容已置剪辑板,Ctrl+V 使用!")
messagebox.showwarning("温馨提示:","内容已置剪辑板,Ctrl+V 使用!")
def 组件布局(self):
"""创建所有界面组件"""
# 按钮: 按钮_6bdeffaa -> btn_1
self.btn_1 = tk.Button(
self.master,
text="开始",
bg="#4CAF50",
fg="white",
font=('微软雅黑', 10),
name="按钮_开始"
)
self.btn_1.place(
x=62.0,
y=13.0,
width=100,
height=25
)
# 文本框: 文本框_76432340 -> text_1
self.text_1 = tk.Text(
self.master,
bg="white",
fg="black",
font=('微软雅黑', 10),
name="文本框_日志"
)
self.text_1.place(
x=23.0,
y=63.0,
width=455.0,
height=274.0
)
# 按钮: 按钮_df31c7f8 -> btn_2
self.btn_2 = tk.Button(
self.master,
text="清空",
bg="#4CAF50",
fg="white",
font=('微软雅黑', 10),
name="按钮_清空"
)
self.btn_2.place(
x=170.0,
y=14.0,
width=100,
height=25
)
# 按钮: 按钮_d6304733 -> btn_3
self.btn_3 = tk.Button(
self.master,
text="复制内容",
bg="#4CAF50",
fg="white",
font=('微软雅黑', 10),
name="按钮_复制内容"
)
self.btn_3.place(
x=280.0,
y=15.0,
width=100,
height=25
)
def main():
"""主函数"""
root = tk.Tk()
app = GeneratedUI(root)
root.mainloop()
if __name__ == "__main__":
main()