You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python GUI生成随机收据号问题求助(入门级)

Tkinter租赁物品追踪GUI收据号生成解决方案

核心思路

要实现唯一收据号,关键是记录已生成的号码避免重复;输入验证通过后生成号码,再插入表格对应列。

具体实现代码

1. 初始化依赖与存储集合

在代码开头添加:

import random

# 全局集合存储已使用的收据号,确保唯一性
used_receipts = set()

2. 编写唯一收据号生成函数

def get_unique_receipt():
    # 循环生成直到拿到未使用的号码
    while True:
        receipt_num = random.randint(1000000, 9999999)
        if receipt_num not in used_receipts:
            used_receipts.add(receipt_num)
            return receipt_num

3. 修改按钮回调逻辑

在你的“Append Details”按钮触发函数里,先完成输入验证,验证通过后调用生成函数并插入表格:

def on_append_click():
    # 替换成你的输入验证代码,比如检查输入框非空、格式合法
    # 假设验证通过的判断条件为True
    if input_validation_success():
        receipt = get_unique_receipt()
        # 假设表格是ttk.Treeview实例,名为rental_tree
        # 根据表格列顺序,把receipt放在"Receipt No."对应位置
        rental_tree.insert('', 'end', values=(receipt, 物品名称, 租赁人, 其他字段...))

进阶提示

如果需要程序重启后仍保持号码唯一,可将used_receipts集合保存到本地文件(如JSON格式),启动时读取加载:

# 保存到文件
import json
with open('used_receipts.json', 'w') as f:
    json.dump(list(used_receipts), f)

# 启动时加载
try:
    with open('used_receipts.json', 'r') as f:
        used_receipts = set(json.load(f))
except FileNotFoundError:
    used_receipts = set()

内容的提问来源于stack exchange,提问作者user22270443

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 03:37:24