鱼C论坛

 找回密码
 立即注册
查看: 218|回复: 8

[作品展示] 抽奖小程序1.0(新坑)(这次撒不了币了)

[复制链接]
发表于 2024-5-1 08:03:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

                               
登录/注册后可看大图


这是我做的第一个坑 ,做的是一个抽奖的小程序
话不多说,直接上链接
游客,如果您要查看本帖隐藏内容请回复


评分

参与人数 3荣誉 +17 鱼币 +18 贡献 +11 收起 理由
python爱好者. + 4 + 5 + 3 鱼C有你更精彩^_^
zhangjinxuan + 8 + 8 + 5 鱼C有你更精彩^_^
青出于蓝 + 5 + 5 + 3

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-1 08:03:48 | 显示全部楼层
这是一个简单的抽奖小程序。你可以使用tkinter库来创建GUI界面,通过Listbox、Entry和Button等控件来实现添加、删除和抽奖的功能。

在这个程序中,抽奖列表是用Listbox控件实现的,你可以使用add()函数向列表中添加抽奖选项。例如,在添加按钮的回调函数add()中,获取输入框中的文本,并使用insert()方法将其添加到choice_list中。

删除功能有两种方式:一种是按照索引删除,另一种是选中项删除。在删除按钮的回调函数delete_to_index()中,首先判断输入的索引是否在范围内,如果是则使用delete()方法删除对应索引的选项。在删除选中项的回调函数delete_insert()中,先判断是否有选中项,然后遍历选中项,使用delete()方法删除对应索引的选项。

抽奖功能是通过choice()函数实现的,先获取choice_list中的所有选项,然后从中随机选择一个选项,并显示在text控件中。

下面是完整代码示例:

  1. import tkinter as tk
  2. import random
  3. from tkinter import messagebox

  4. root = tk.Tk()

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

  9. # 抽取函数
  10. def choice():
  11.     lists = choice_list.get(0, tk.END)
  12.     if len(lists) != 0:
  13.         text.config(state=tk.NORMAL)
  14.         text.delete(1.0, tk.END)
  15.         text.insert(tk.END, str(random.choice(lists)))
  16.         text.config(state=tk.DISABLED)

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

  23. # 删除函数
  24. def delete_to_index(event=None):
  25.     try:
  26.         if delete_index.get() < 1 or delete_index.get() > choice_list.size() - 1:
  27.             choice_list.delete(delete_index.get() - 1)
  28.         else:
  29.             messagebox.showerror(title='错误', message="删除失败:超出索引范围!")
  30.     except tk.TclError:
  31.         messagebox.showerror(title='错误', message="删除失败:类型错误!")

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

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

  42. # 列表框
  43. choice_list = tk.Listbox(left, yscrollcommand=scroll.set, selectmode=tk.MULTIPLE)
  44. choice_list.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
  45. choice_list.bind("<<ListboxSelect>>", delete_insert) # 绑定事件

  46. # 同步滚动条
  47. scroll.config(command=choice_list.yview)

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

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

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

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

  59. # 删除输入框
  60. e2 = tk.Entry(right, textvariable=delete_index, font=("微软雅黑", 13))
  61. e2.grid(row=1, column=1, padx=10, pady=5)
  62. e2.bind("<Return>", delete_insert) # 绑定回车事件

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

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

  69. root.mainloop()
复制代码


希望这个代码可以帮助到你,如果还有其他问题,请随时提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-1 09:39:04 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-1 14:49:01 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-7 14:48:11 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-7 15:26:28 | 显示全部楼层
nn
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-11 11:27:52 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-11 14:14:52 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-11 14:58:07 | 显示全部楼层
需要回复啥?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-5 09:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表