Jadual Kandungan
1. Tkinter
Apakah itu GUI
Perpustakaan GUI yang biasa digunakan
1
3. PyQT
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
四、总结
Rumah pembangunan bahagian belakang Tutorial Python Menggunakan Python dan Tkinter untuk melaksanakan aplikasi menjawab klasifikasi sampah

Menggunakan Python dan Tkinter untuk melaksanakan aplikasi menjawab klasifikasi sampah

Apr 20, 2023 pm 07:55 PM
python tkinter

    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:

    Menggunakan Python dan Tkinter untuk melaksanakan aplikasi menjawab klasifikasi sampah

    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:

    Selepas projek dijalankan, program akan secara rawak memilih 10 soalan daripada bank soalan untuk diuji Apabila anda menjawab dengan betul atau salah, akan ada gesaan tetingkap timbul akan mendapat 10 mata Apabila semua soalan dijawab, Anda akan digesa bahawa soalan telah selesai dan markah akhir anda untuk peperiksaan ini akan dipaparkan.

    Menggunakan Python dan Tkinter untuk melaksanakan aplikasi menjawab klasifikasi sampah3. 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() # 让窗口一直显示出来
    Salin selepas log masuk

    3.3 Membina bank soalan

    Menggunakan Python dan Tkinter untuk melaksanakan aplikasi menjawab klasifikasi sampahKali 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.

    3.4 Cipta komponen

    Terdahulu kami menganalisis reka letak projek ini, yang memerlukan 1 Nota Label, 4 butang radio dan 1 butang soalan seterusnya Sekarang Mula meletakkannya di bahagian utama tetingkap, pilih 10 soalan secara rawak daripada bank soalan dan paparkan soalan pertama.
    # 准备一个题库列表
    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'), 
    ]
    Salin selepas log masuk

    Kesannya adalah seperti berikut:

    # 导入本次项目用到的库
    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() # 让窗口一直显示出来
    Salin selepas log masuk

    Kini tiada jawapan apabila anda mengklik pada soalan seterusnya, kerana pada masa ini, hanya susun atur halaman dilaksanakan, dan Fungsi menilai betul dari salah tidak dilaksanakan.

    Menggunakan Python dan Tkinter untuk melaksanakan aplikasi menjawab klasifikasi sampah3.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',初始没选中
    Salin selepas log masuk
    Versi ringkas program jawapan telah dilaksanakan di sini, dan kesan adalah seperti yang ditunjukkan sebelum ini.

    四、总结

    本次使用了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()
    Salin selepas log masuk

    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!

    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

    Alat AI Hot

    Undresser.AI Undress

    Undresser.AI Undress

    Apl berkuasa AI untuk mencipta foto bogel yang realistik

    AI Clothes Remover

    AI Clothes Remover

    Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

    Undress AI Tool

    Undress AI Tool

    Gambar buka pakaian secara percuma

    Clothoff.io

    Clothoff.io

    Penyingkiran pakaian AI

    Video Face Swap

    Video Face Swap

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

    Artikel Panas

    <🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
    3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
    Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
    3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
    Nordhold: Sistem Fusion, dijelaskan
    3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

    Alat panas

    Notepad++7.3.1

    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    SublimeText3 versi Cina

    SublimeText3 versi Cina

    Versi Cina, sangat mudah digunakan

    Hantar Studio 13.0.1

    Hantar Studio 13.0.1

    Persekitaran pembangunan bersepadu PHP yang berkuasa

    Dreamweaver CS6

    Dreamweaver CS6

    Alat pembangunan web visual

    SublimeText3 versi Mac

    SublimeText3 versi Mac

    Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

    Topik panas

    Tutorial Java
    1667
    14
    Tutorial PHP
    1273
    29
    Tutorial C#
    1255
    24
    PHP dan Python: Paradigma yang berbeza dijelaskan PHP dan Python: Paradigma yang berbeza dijelaskan Apr 18, 2025 am 12:26 AM

    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.

    Memilih antara php dan python: panduan Memilih antara php dan python: panduan Apr 18, 2025 am 12:24 AM

    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.

    Cara menjalankan Python Kod Sublime Cara menjalankan Python Kod Sublime Apr 16, 2025 am 08:48 AM

    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 dan Python: menyelam mendalam ke dalam sejarah mereka PHP dan Python: menyelam mendalam ke dalam sejarah mereka Apr 18, 2025 am 12:25 AM

    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 vs JavaScript: Keluk Pembelajaran dan Kemudahan Penggunaan Python vs JavaScript: Keluk Pembelajaran dan Kemudahan Penggunaan Apr 16, 2025 am 12:12 AM

    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 vs Python: Prestasi dan Skala Golang vs Python: Prestasi dan Skala Apr 19, 2025 am 12:18 AM

    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.

    Di mana untuk menulis kod di vscode Di mana untuk menulis kod di vscode Apr 15, 2025 pm 09:54 PM

    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.

    Cara menjalankan python dengan notepad Cara menjalankan python dengan notepad Apr 16, 2025 pm 07:33 PM

    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.

    See all articles