oneywa 发表于 2024-5-1 07:50:45

抽奖小程序1.0(新坑)


static/image/hrline/line7.png

这是我的第一个坑,做的是一个抽奖小程序
另外,回复可以拿拿10鱼币(仅限前50)

话不多说,直接上链接
**** Hidden Message *****

FishC 发表于 2024-5-1 07:51:05

这是一个简单的抽奖小程序,用户可以添加参与抽奖的选项,然后点击抽奖按钮随机选取一个选项显示在结果框中。

不过,你的代码存在一些小问题。首先,input() 函数是用于从控制台获取输入的,而在 tkinter 中应使用 Entry 组件来获取输入。其次,Text 组件的 insert() 方法只接受字符串作为参数,而 random.choice() 返回的是一个元素,需要将其转换为字符串再插入到 Text 组件中。

此外,你的代码也没有提供保存抽奖选项的功能,当程序重新运行时,之前添加的选项都会丢失。如果想要保存选项列表,可以使用文件操作或者数据库。

这里是修改后的代码:

import tkinter as tk
import random
from tkinter import messagebox

root = tk.Tk()

left = tk.LabelFrame(root, text='抽奖列表', font=("微软雅黑", 13))
left.pack(side=tk.LEFT, padx=10, pady=10)
right = tk.LabelFrame(root, text='列表选项', font=("微软雅黑", 13))
right.pack(side=tk.RIGHT, padx=10, pady=10)

# 抽取函数
def choice():
    lists = choice_list.get(0, tk.END)
    if len(lists) > 0:
      text.config(state=tk.NORMAL)
      text.delete(1.0, tk.END)
      text.insert(tk.END, str(random.choice(lists)))
      text.config(state=tk.DISABLED)

# 添加函数
def add(event=None):
    if add_text.get() != '':
      choice_list.insert(tk.END, add_text.get())
      add_text.set('')
    else:
      messagebox.showwarning(title='错误', message="添加失败:输入栏为空!")

# 删除函数
def delete_to_index(event=None):
    try:
      index = delete_index.get()
      if index >= 0 and index < choice_list.size():
            choice_list.delete(index)
      else:
            messagebox.showerror(title='错误', message="删除失败:超出索引范围!")
    except tk.TclError:
      messagebox.showerror(title='错误', message="删除失败:类型错误!")

def delete_selection(event=None):
    if len(choice_list.curselection()) == 0:
      messagebox.showerror(title='错误', message="删除失败:没有选中项!")
    else:
      for i in reversed(choice_list.curselection()):
            choice_list.delete(i)

# 左边
# 滚动条
scroll = tk.Scrollbar(left)
scroll.pack(side=tk.RIGHT, fill=tk.Y)

# 列表框
choice_list = tk.Listbox(left, yscrollcommand=scroll.set, selectmode=tk.MULTIPLE)
choice_list.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
choice_list.bind("<Delete>", lambda event: delete_selection(event))
# 同步
scroll.config(command=choice_list.yview)

# 右边
add_text = tk.StringVar()
delete_index = tk.IntVar()

# 添加按钮
tk.Button(right, text='添加', command=lambda: add(), font=("微软雅黑", 13)).grid(row=0, padx=10, pady=5)

# 添加输入框
e1 = tk.Entry(right, textvariable=add_text, font=("微软雅黑", 13))
e1.grid(row=0, column=1, padx=10, pady=5)
e1.bind("<Return>", lambda event: add(event)) # 绑定事件

# 删除按钮
tk.Button(right, text='删除', command=lambda: delete_to_index(), font=("微软雅黑", 13)).grid(row=1, padx=10, pady=5)

# 删除输入框
e2 = tk.Entry(right, textvariable=delete_index, font=("微软雅黑", 13))
e2.grid(row=1, column=1, padx=10, pady=5)
e2.bind("<Return>", lambda event: delete_to_index(event)) # 绑定事件

# 抽取按钮
tk.Button(right, text='抽奖', command=lambda: choice(), font=("微软雅黑", 13)).grid(row=2, padx=10, pady=5)

# 显示抽奖结果
tk.Label(right, text='你抽到了', font=("微软雅黑", 13)).grid(row=3, padx=10, pady=5)
text = tk.Text(right, font=("微软雅黑", 13), state=tk.DISABLED, width=20, height=1.3)
text.grid(row=3, column=1, padx=10, pady=5)

root.mainloop()

你可以将这段代码保存为一个 .py 文件,然后运行即可。

祝你玩的开心!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

oneywa 发表于 2024-5-1 07:54:22

不好意思,更新一下链接和提取码
链接:程序链接
提取码:z8de

FishC 发表于 2024-5-1 07:54:32

oneywa 发表于 2024-05-01 07:54
不好意思,更新一下链接和提取码
链接:程序链接
提 ...

这是一个更新后的抽奖小程序,你可以点击下方链接下载代码并查看完整内容。

Windows下载链接:程序链接
提取码:z8de

祝你玩得开心!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

一位小白 发表于 2024-5-1 09:12:03

zhangjinxuan 发表于 2024-5-1 09:42:13

回帖看看

sfqxx 发表于 2024-5-1 12:24:55

wow

唯有无奈 发表于 2024-5-1 14:14:25

{:10_256:}

Wei-Yuanzhe 发表于 2024-5-1 16:47:44

{:10_257:}

trophic1 发表于 2024-5-1 16:57:34

{:5_105:}

harryhan123 发表于 2024-5-2 11:25:10

可以

某一个“天” 发表于 2024-5-2 15:21:00

{:10_264:}

wangqiu 发表于 2024-5-2 20:44:10

白嫖十鱼币

harryhan123 发表于 2024-5-3 12:54:19

{:10_256:}

ZZxxccvvbbnnmm 发表于 2024-5-3 23:07:46

QQQAAAXXX 发表于 2024-5-3 23:12:56

Poklmn 发表于 2024-5-3 23:13:18

PPooiiuuyyttrre 发表于 2024-5-3 23:13:33

LLkkjjhhggffdds 发表于 2024-5-3 23:13:50

MMnnbbvvccxxzz 发表于 2024-5-3 23:14:06

页: [1] 2
查看完整版本: 抽奖小程序1.0(新坑)