tk 文本生成器

import random
import tkinter as tk
import ttkbootstrap as ttk
from tkinter import messagebox
import pyperclip

def 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 = 0
        while current_length < length:
            if current_length % 4 == 0 and current_length % 5 != 0:
                # 每4个单位插入其他内容
                other_content = generate_other_content()
                generated_text += other_content
                current_length += len(other_content)
            else:
                random_char = random.choice(original_text)
                generated_text += random_char
                current_length += 1

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值