


Menggunakan Python dan Tkinter untuk melaksanakan aplikasi menjawab klasifikasi sampah
1. Tkinter
Apakah itu GUI
Antaramuka Pengguna Grafik (pendek kata GUI) Juga dikenali sebagai antara muka pengguna grafik) merujuk kepada antara muka pengguna operasi komputer yang dipaparkan secara grafik. Antara muka pengguna grafik ialah format paparan antara muka untuk komunikasi manusia-komputer yang membolehkan pengguna menggunakan peranti input seperti tetikus untuk memanipulasi ikon atau pilihan menu pada skrin untuk memilih arahan, memanggil fail, memulakan program atau melaksanakan tugas harian yang lain. Antara muka pengguna grafik mempunyai banyak kelebihan berbanding antara muka aksara yang menggunakan papan kekunci untuk memasukkan teks atau arahan aksara untuk menyelesaikan tugas rutin.
Antara muka pengguna grafik terdiri daripada tetingkap, menu lungsur, kotak dialog dan mekanisme kawalan yang sepadan dengannya. Ia diseragamkan dalam pelbagai aplikasi baharu, iaitu, operasi yang sama sentiasa diselesaikan dengan cara yang sama antara muka pengguna grafik, perkara yang dilihat dan dikendalikan oleh pengguna ialah objek grafik, dan teknologi grafik komputer digunakan.
Pengaturcaraan GUI adalah serupa dengan "blok binaan", meletakkan komponen (Widget) ke dalam tetingkap. Berikut ialah perisian lukisan dalam windows, yang merupakan program GUI biasa:
Perpustakaan GUI yang biasa digunakan
1
tkinter (antara muka Tk) ialah perpustakaan GUI standard Python, menyokong pembangunan program GUI merentas platform. tkinter sesuai untuk menulis program GUI kecil, dan amat sesuai untuk pemula untuk mempelajari pengaturcaraan GUI. Kali ini kita akan fokus pada tkinter. wxPython .
3. PyQT
Qt ialah perpustakaan GUI sumber terbuka yang sesuai untuk pembangunan program GUI berskala besar PyQT ialah pelaksanaan Python standard kit alat Qt. Kami juga boleh menggunakan pereka bentuk antara muka Qt Desginer untuk membangunkan aplikasi GUI dengan cepat.
Program Tkinter yang paling mudah hendaklah mengandungi sekurang-kurangnya empat bahagian berikut:Modul import tkinter
-
Buat tetingkap utama, juga dipanggil tetingkap akar (iaitu tetingkap akar)
Tambah kawalan interaksi manusia-komputer dan tulis fungsi acara yang sepadan
Paparkan tetingkap utama melalui gelung utama
2. Kesan akhir
Mari kita lihat dahulu kesan akhir projek ini:
3. Proses Projek
3.1 Tata Letak Analisis
Memandangkan ini hanyalah program menjawab soalan yang mudah, keseluruhan halaman tidak perlu terlalu rumit. Mula-mula, label Label diperlukan untuk memaparkan tajuk setiap soalan, kemudian terdapat 4 butang butang radio menegak (atau mendatar), dan akhirnya butang klik untuk soalan seterusnya diletakkan di bawah.
3.2 Cipta tetingkap
Untuk melakukan sebarang projek, anda perlu mencipta tetingkap utama terlebih dahulu, juga dipanggil tetingkap akar (iaitu tetingkap akar).
Kesannya adalah seperti berikut:# 导入本次项目用到的库 import tkinter from tkinter import * from tkinter.messagebox import * import random if __name__ == '__main__': root = tkinter.Tk() # 创建tkinter对象 root.title('垃圾分类答题考试') # 设置标题 root.geometry("500x200+500+300") # 设置页面的位置和长宽 root.mainloop() # 让窗口一直显示出来
Kali ini saya membuat program menjawab soalan untuk pengelasan sampah, jadi saya temui beberapa soalan tentang pengelasan sampah dalam talian. Di sini saya terus menggunakan senarai dan tupel untuk menyimpan data. Untuk menjelaskan, yang pertama dalam tupel ialah soalan, diikuti dengan pilihan ABCD, dan akhirnya pilihan jawapan untuk soalan ini.
# 准备一个题库列表 object_list = [ ('包了口香糖的纸巾属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('保鲜膜属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('变质的香肠属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('槟榔渣属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('剥掉的蛋壳属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('菜刀属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('茶叶渣应扔进哪个垃圾桶?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('吃剩的饼干渣是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('抽完烟的烟蒂是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('刀片属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('掉在地上的树叶是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('废弃的食用油属于?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('甘蔗渣是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('过期的化妆品是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('过期的猫粮属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('包装药片的铝箔属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('喝茶剩下的茶叶渣是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('花生壳属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('坏掉的电脑属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('灰色塑料袋属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('回形针属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('鸡骨头属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('鸡毛属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('家庭盆栽废弃的树叶是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('碱性电池属于什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('胶卷属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('旧凉席属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('旧图书属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('空的灭火器属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('老旧电视机属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('落发属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('没用完的铅笔属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('没有泡过的茶叶属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('哪一类可进行资源再生利用?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('苹果手机电池属于什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('破碎的碗碟属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('染发剂的容器属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('杀虫剂的容器属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('水果硬糖属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('水银温度计属于什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('撕掉了的旧照片,应该丢到哪个垃圾桶内?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('塑料筷子属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('塑料玩具是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('糖果包装纸属于什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('西瓜籽属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ]
# 导入本次项目用到的库 import tkinter from tkinter import * from tkinter.messagebox import * import random # 准备一个题库列表 object_list = [ ('包了口香糖的纸巾属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('保鲜膜属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('变质的香肠属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('槟榔渣属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('剥掉的蛋壳属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('菜刀属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('茶叶渣应扔进哪个垃圾桶?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('吃剩的饼干渣是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('抽完烟的烟蒂是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('刀片属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('掉在地上的树叶是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('废弃的食用油属于?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('甘蔗渣是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('过期的化妆品是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('过期的猫粮属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('包装药片的铝箔属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('喝茶剩下的茶叶渣是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('花生壳属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('坏掉的电脑属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('灰色塑料袋属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('回形针属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('鸡骨头属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('鸡毛属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('家庭盆栽废弃的树叶是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('碱性电池属于什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('胶卷属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('旧凉席属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('旧图书属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('空的灭火器属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('老旧电视机属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('落发属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('没用完的铅笔属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('没有泡过的茶叶属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('哪一类可进行资源再生利用?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('苹果手机电池属于什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('破碎的碗碟属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('染发剂的容器属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('杀虫剂的容器属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('水果硬糖属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('水银温度计属于什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('撕掉了的旧照片,应该丢到哪个垃圾桶内?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('塑料筷子属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('塑料玩具是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('糖果包装纸属于什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('西瓜籽属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ] if __name__ == '__main__': root = tkinter.Tk() # 创建tkinter对象 root.title('垃圾分类答题考试') # 设置标题 root.geometry("500x200+500+300") # 设置页面的位置和长宽 # 从题库中随机抽取10个题目作为考试题 values = random.sample(object_list,10) # 创建一个字符串变量用来记录选项值 s = tkinter.StringVar() s.set('E') # 设置初始值为'E',初始没选中 # 设置初始题号和分值 num = 0 score = 0 label = tkinter.Label(root, text=values[num][0]) # 用来显示题目 label.pack() # 创建第 1 个 Frame 组件 f1 = Frame(root) f1.pack() r1 = tkinter.Radiobutton(f1, variable=s, value='A', text=values[num][1]) # 安装第一个单选按钮 r1.pack() r2 = tkinter.Radiobutton(f1, variable=s, value='B', text=values[num][2]) # 安装第二个单选按钮 r2.pack() r3 = tkinter.Radiobutton(f1, variable=s, value='C', text=values[num][3]) # 安装第三个单选按钮 r3.pack() r4 = tkinter.Radiobutton(f1, variable=s, value='D', text=values[num][4]) # 安装第四个单选按钮 r4.pack() # 创建第 2 个 Frame 组件 f2 = Frame(root) f2.pack() # 创建下一题的按钮 Button(f2, text='下一题').pack(side=LEFT) # 默认显示第一道题目 label["text"] = str(num+1) + '.' + values[num][0] # 显示题目 # 显示4个选项 r1["text"] = values[num][1] r2["text"] = values[num][2] r3["text"] = values[num][3] r4["text"] = values[num][4] root.mainloop() # 让窗口一直显示出来
3.5 Tulis fungsi acara
Logik acara ialah apabila anda mengklik butang soalan seterusnya, program menentukan sama ada pilihan anda untuk soalan ini konsisten dengan jawapan dalam bank soalan. Jika ia sama, ia melepasi Tetingkap pop timbul akan digunakan untuk mengingatkan anda bahawa jawapannya betul jika ia tidak sama, tetingkap timbul akan digunakan untuk menggesa anda bahawa jawapan itu salah. Selepas gesaan selesai, soalan seterusnya akan dipaparkan serta-merta. Selepas setiap penghakiman, adalah perlu untuk menyemak sama ada soalan itu adalah soalan terakhir Jika ya, berhenti menjawab soalan dan dapatkan jumlah markah ujian ini.
Pada masa yang sama, anda juga perlu menambah fungsi acara pada butang soalan seterusnya# 定义一个判断选项正确性的函数 def main(values): # 全局引用num和score变量 global num global score # 如果选项和答案相等则答对了 if s.get() == values[num][5]: showinfo("恭喜", "恭喜你答对了!") # 提示你答对了 score += 10 # 得分加10分 # 如果选项和答案不相等则答错了 else: showinfo("遗憾", "遗憾你答错了!") # 提示你答错了 num = num + 1 # 记录题号 # 如果题号已经大于等于题目的总长度则需要进行结束并统计总分数 if num >= len(values): showinfo("结果", f"全部题目做完了!\n您的最终得分为{score}分!") # 提示题目做完了,总结出你的得分 root.quit() # 程序退出 return # 显示下一题 label["text"] = str(num+1) + '.' + values[num][0] # 显示题目 # 显示4个选项 r1["text"] = values[num][1] r2["text"] = values[num][2] r3["text"] = values[num][3] r4["text"] = values[num][4] s.set('E') # 设置初始值为'E',初始没选中
四、总结
本次使用了Python中的tkinter库实现了一个简易的垃圾分类答题程序,其中的题库和各种参数大家可以发挥自己的创意,自行进行修改,基于此源码的基础上创作出你的作品!
源代码
# 导入本次项目用到的库 import tkinter from tkinter import * from tkinter.messagebox import * import random # 准备一个题库列表 object_list = [ ('包了口香糖的纸巾属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('保鲜膜属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('变质的香肠属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('槟榔渣属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('剥掉的蛋壳属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('菜刀属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('茶叶渣应扔进哪个垃圾桶?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('吃剩的饼干渣是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('抽完烟的烟蒂是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('刀片属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('掉在地上的树叶是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('废弃的食用油属于?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('甘蔗渣是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('过期的化妆品是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('过期的猫粮属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('包装药片的铝箔属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('喝茶剩下的茶叶渣是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('花生壳属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('坏掉的电脑属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('灰色塑料袋属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('回形针属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('鸡骨头属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('鸡毛属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('家庭盆栽废弃的树叶是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('碱性电池属于什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('胶卷属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('旧凉席属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('旧图书属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('空的灭火器属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('老旧电视机属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('落发属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('没用完的铅笔属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('没有泡过的茶叶属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('哪一类可进行资源再生利用?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('苹果手机电池属于什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('破碎的碗碟属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('染发剂的容器属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('杀虫剂的容器属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('水果硬糖属于哪一类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ('水银温度计属于什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('撕掉了的旧照片,应该丢到哪个垃圾桶内?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'B'), ('塑料筷子属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('塑料玩具是什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'C'), ('糖果包装纸属于什么垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'A'), ('西瓜籽属于哪类垃圾?', '其他垃圾', '有害垃圾', '可回收物', '厨余垃圾', 'D'), ] # 定义一个判断选项正确性的函数 def main(values): # 全局引用num和score变量 global num global score # 如果选项和答案相等则答对了 if s.get() == values[num][5]: showinfo("恭喜", "恭喜你答对了!") # 提示你答对了 score += 10 # 得分加10分 # 如果选项和答案不相等则答错了 else: showinfo("遗憾", "遗憾你答错了!") # 提示你答错了 num = num + 1 # 记录题号 # 如果题号已经大于等于题目的总长度则需要进行结束并统计总分数 if num >= len(values): showinfo("结果", f"全部题目做完了!\n您的最终得分为{score}分!") # 提示题目做完了,总结出你的得分 root.quit() # 程序退出 return # 显示下一题 label["text"] = str(num+1) + '.' + values[num][0] # 显示题目 # 显示4个选项 r1["text"] = values[num][1] r2["text"] = values[num][2] r3["text"] = values[num][3] r4["text"] = values[num][4] s.set('E') # 设置初始值为'E',初始没选中 if __name__ == '__main__': root = tkinter.Tk() # 创建tkinter对象 root.title('垃圾分类答题考试') # 设置标题 root.geometry("500x200+500+300") # 设置页面的位置和长宽 # 从题库中随机抽取10个题目作为考试题 values = random.sample(object_list,10) # 创建一个字符串变量用来记录选项值 s = tkinter.StringVar() s.set('E') # 设置初始值为'E',初始没选中 # 设置初始题号和分值 num = 0 score = 0 label = tkinter.Label(root, text=values[num][0]) # 用来显示题目 label.pack() # 创建第 1 个 Frame 组件 f1 = Frame(root) f1.pack() r1 = tkinter.Radiobutton(f1, variable=s, value='A', text=values[num][1]) # 安装第一个单选按钮 r1.pack() r2 = tkinter.Radiobutton(f1, variable=s, value='B', text=values[num][2]) # 安装第二个单选按钮 r2.pack() r3 = tkinter.Radiobutton(f1, variable=s, value='C', text=values[num][3]) # 安装第三个单选按钮 r3.pack() r4 = tkinter.Radiobutton(f1, variable=s, value='D', text=values[num][4]) # 安装第四个单选按钮 r4.pack() # 创建第 2 个 Frame 组件 f2 = Frame(root) f2.pack() # 创建下一题的按钮 Button(f2, text='下一题', command=lambda:main(values)).pack(side=LEFT) # 默认显示第一道题目 label["text"] = str(num+1) + '.' + values[num][0] # 显示题目 # 显示4个选项 r1["text"] = values[num][1] r2["text"] = values[num][2] r3["text"] = values[num][3] r4["text"] = values[num][4] root.mainloop()
Atas ialah kandungan terperinci Menggunakan Python dan Tkinter untuk melaksanakan aplikasi menjawab klasifikasi sampah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











PHP terutamanya pengaturcaraan prosedur, tetapi juga menyokong pengaturcaraan berorientasikan objek (OOP); Python menyokong pelbagai paradigma, termasuk pengaturcaraan OOP, fungsional dan prosedur. PHP sesuai untuk pembangunan web, dan Python sesuai untuk pelbagai aplikasi seperti analisis data dan pembelajaran mesin.

PHP sesuai untuk pembangunan web dan prototaip pesat, dan Python sesuai untuk sains data dan pembelajaran mesin. 1.Php digunakan untuk pembangunan web dinamik, dengan sintaks mudah dan sesuai untuk pembangunan pesat. 2. Python mempunyai sintaks ringkas, sesuai untuk pelbagai bidang, dan mempunyai ekosistem perpustakaan yang kuat.

Untuk menjalankan kod python dalam teks luhur, anda perlu memasang plug-in python terlebih dahulu, kemudian buat fail .py dan tulis kod itu, dan akhirnya tekan Ctrl B untuk menjalankan kod, dan output akan dipaparkan dalam konsol.

PHP berasal pada tahun 1994 dan dibangunkan oleh Rasmuslerdorf. Ia pada asalnya digunakan untuk mengesan pelawat laman web dan secara beransur-ansur berkembang menjadi bahasa skrip sisi pelayan dan digunakan secara meluas dalam pembangunan web. Python telah dibangunkan oleh Guidovan Rossum pada akhir 1980 -an dan pertama kali dikeluarkan pada tahun 1991. Ia menekankan kebolehbacaan dan kesederhanaan kod, dan sesuai untuk pengkomputeran saintifik, analisis data dan bidang lain.

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Golang lebih baik daripada Python dari segi prestasi dan skalabiliti. 1) Ciri-ciri jenis kompilasi Golang dan model konkurensi yang cekap menjadikannya berfungsi dengan baik dalam senario konvensional yang tinggi. 2) Python, sebagai bahasa yang ditafsirkan, melaksanakan perlahan -lahan, tetapi dapat mengoptimumkan prestasi melalui alat seperti Cython.

Kod penulisan dalam Kod Visual Studio (VSCode) adalah mudah dan mudah digunakan. Hanya pasang VSCode, buat projek, pilih bahasa, buat fail, tulis kod, simpan dan jalankannya. Kelebihan vscode termasuk sumber lintas platform, bebas dan terbuka, ciri-ciri yang kuat, sambungan yang kaya, dan ringan dan cepat.

Running Python Code di Notepad memerlukan Python Executable dan NPPExec plug-in untuk dipasang. Selepas memasang Python dan menambahkan laluannya, konfigurasikan perintah "python" dan parameter "{current_directory} {file_name}" dalam plug-in nppexec untuk menjalankan kod python melalui kunci pintasan "f6" dalam notepad.
