鱼C论坛

 找回密码
 立即注册
查看: 262|回复: 35

[学习笔记] 抽奖小程序1.0(新坑)

[复制链接]
回帖奖励 200 鱼币 回复本帖可获得 10 鱼币奖励! 每人限 1 次
发表于 2024-5-1 07:50:45 | 显示全部楼层 |阅读模式

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

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

x


                               
登录/注册后可看大图


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

话不多说,直接上链接
游客,如果您要查看本帖隐藏内容请回复


评分

参与人数 1荣誉 +7 贡献 +5 收起 理由
zhangjinxuan + 7 + 5 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

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

使用道具 举报

发表于 2024-5-1 07:51:05 | 显示全部楼层
这是一个简单的抽奖小程序,用户可以添加参与抽奖的选项,然后点击抽奖按钮随机选取一个选项显示在结果框中。

不过,你的代码存在一些小问题。首先,input() 函数是用于从控制台获取输入的,而在 tkinter 中应使用 Entry 组件来获取输入。其次,Text 组件的 insert() 方法只接受字符串作为参数,而 random.choice() 返回的是一个元素,需要将其转换为字符串再插入到 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.         add_text.set('')
  22.     else:
  23.         messagebox.showwarning(title='错误', message="添加失败:输入栏为空!")

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

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

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

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

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

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

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

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

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

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

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

  71. root.mainloop()
复制代码


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

祝你玩的开心!

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

使用道具 举报

 楼主| 发表于 2024-5-1 07:54:22 | 显示全部楼层
不好意思,更新一下链接和提取码
链接:程序链接
提取码:z8de
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-1 07:54:32 | 显示全部楼层
oneywa 发表于 2024-05-01 07:54
不好意思,更新一下链接和提取码
链接:程序链接
提 ...


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

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

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

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

使用道具 举报

发表于 2024-5-1 09:12:03 | 显示全部楼层

回帖奖励 +10 鱼币

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

使用道具 举报

发表于 2024-5-1 09:42:13 | 显示全部楼层

回帖奖励 +10 鱼币

回帖看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-1 12:24:55 | 显示全部楼层

回帖奖励 +10 鱼币

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

使用道具 举报

发表于 2024-5-1 14:14:25 | 显示全部楼层

回帖奖励 +10 鱼币

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

使用道具 举报

发表于 2024-5-1 16:47:44 | 显示全部楼层

回帖奖励 +10 鱼币

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

使用道具 举报

发表于 2024-5-1 16:57:34 | 显示全部楼层

回帖奖励 +10 鱼币

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

使用道具 举报

发表于 2024-5-2 11:25:10 | 显示全部楼层

回帖奖励 +10 鱼币

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

使用道具 举报

发表于 2024-5-2 15:21:00 | 显示全部楼层

回帖奖励 +10 鱼币

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

使用道具 举报

发表于 2024-5-2 20:44:10 From FishC Mobile | 显示全部楼层

回帖奖励 +10 鱼币

白嫖十鱼币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2024-5-3 23:07:46 | 显示全部楼层

回帖奖励 +10 鱼币

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

使用道具 举报

发表于 2024-5-3 23:12:56 | 显示全部楼层

回帖奖励 +10 鱼币

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

使用道具 举报

发表于 2024-5-3 23:13:18 | 显示全部楼层

回帖奖励 +10 鱼币

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

使用道具 举报

发表于 2024-5-3 23:13:33 | 显示全部楼层

回帖奖励 +10 鱼币

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

使用道具 举报

发表于 2024-5-3 23:13:50 | 显示全部楼层

回帖奖励 +10 鱼币

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

使用道具 举报

发表于 2024-5-3 23:14:06 | 显示全部楼层

回帖奖励 +10 鱼币

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 07:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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