import random
import tkinter as tk
import ttkbootstrap as ttk
from tkinter import messagebox
import pyperclipdef wenben_run():def generate_text(original_text, length):# 去掉原始文本中的换行符和空格original_text = original_text.replace('\n', '')original_text = original_text.replace(' ', '')# 获取原始文本的长度original_length = len(original_text)# 如果指定的长度小于等于原始文本的长度,则直接截取原始文本if length <= original_length:start_index = random.randint(0, original_length - length)return original_text[start_index:start_index + length]# 从原始文本中随机选择字符生成指定长度的文本generated_text = ''current_length = 0while current_length < length:if current_length % 4 == 0 and current_length % 5 != 0:# 每4个单位插入其他内容other_content = generate_other_content()generated_text += other_contentcurrent_length += len(other_content)else:random_char = random.choice(original_text)generated_text += random_charcurrent_length += 1return generated_text[:length]def generate_other_content():# 生成其他内容的逻辑,可以根据需要自定义# 这里只是一个示例,可以根据实际需求进行修改other_contents = ['', 'c', 'f', 'c', 'm', '']return random.choice(other_contents)# 生成文本时先清空输入框# 清空文本框wenben_text_area2.delete(1.0, tk.END)try:# 尝试将输入框的内容转换为整数wenbenlen = int(wenben_entry.get())print("输入的整数为:", wenbenlen)except ValueError:# 如果转换失败,显示错误提示框messagebox.showerror("错误", "输入的内容不是整数,请重新输入!")wenbentext = wenben_text_area.get("1.0", tk.END)# print(wenbenlen)# print(wenbentext)length = int(wenbenlen)original_text = wenbentext# 调用生成文本函数generated_text = generate_text(original_text, length)wenben_text_area2.insert(tk.END, generated_text)# 复制内容至剪切板pyperclip.copy(generated_text)wenben_text_area2.insert(tk.END, '\n')wenben_text_area2.insert(tk.END, '\n')wenben_text_area2.insert(tk.END, '\n---------生成文本内容已自动复制!!!')root = ttk.Window(title='文本生成器', # 窗口标题position=(750, 350), # 窗口运行展示坐标resizable=None, # 是否固定窗口alpha=0.94 # 虚化
)# 设置窗口大小
root.geometry("520x320")# 提示文本输入长度标签
wenben_label = ttk.Label(root, text='设置生成文本长度(如:10):')
wenben_label.grid(row=1, column=0)# 文本长度输入框
wenben_entry = ttk.Entry(root, width=40)
wenben_entry.grid(row=1, column=1, columnspan=1)# 给文本长度框默认赋值100
wenben_entry.insert(ttk.END, "100")# 生成文本按钮
wenben_button = ttk.Button(root, width=10, text="生成文本", command=wenben_run)
wenben_button.grid(row=1, column=2, columnspan=2, sticky="w")# 自定义文本提示标签
wenben_label2 = ttk.Label(root, text='自定义文本内容:')
wenben_label2.grid(row=2, column=0)# 自定义文本输入框
wenben_text_area = ttk.Text(root, height=5, width=73)
wenben_text_area.grid(row=3, columnspan=3, sticky="w")original_text = """123456789
一二三四五六七八九十
abcdefghijklnmopqrstuvwsyz
ABCDEFGHIJKLNMOPQRSTUVWSYZ!
@#$%^&*()_+<>?,.~{}|/,。"""
# 程序启动时插入默认的内容
wenben_text_area.insert(ttk.END, original_text)# 生成文本内容提示标签
wenben_label3 = ttk.Label(root, text='生成的文本内容:')
wenben_label3.grid(row=4, column=0)# 生成文本内容输入框
wenben_text_area2 = ttk.Text(root, height=8, width=73)
wenben_text_area2.grid(row=5, columnspan=3, sticky="w")# 运行主循环
root.mainloop()