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()
?