<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python標(biāo)準(zhǔn)圖形化界面GUI庫入門指南– Tkinter

          共 7176字,需瀏覽 15分鐘

           ·

          2021-04-07 01:19

          點(diǎn)擊上方AI算法與圖像處理”,選擇加"星標(biāo)"或“置頂”

          重磅干貨,第一時(shí)間送達(dá)


          介紹
          圖形用戶界面(GUI)是為用戶交互提供靈活性的界面。它的交互性使我著迷。應(yīng)用程序越吸引人,游戲開發(fā)就越好。
          GUI的最常見組件是主窗口,按鈕,文本輸入,標(biāo)簽,菜單等。在Python中進(jìn)行GUI開發(fā)的最常見選項(xiàng)是Tkinter,wxPython和JPython。
          我們將在本文中討論Tkinter,創(chuàng)建一個(gè)小游戲并可視化結(jié)果。

          Tkinter概述

          Python提供了一個(gè)名為Tkinter的標(biāo)準(zhǔn)GUI庫。Tkinter模塊有助于快速簡便地創(chuàng)建GUI應(yīng)用程序。Tkinter提供了15種類型的小部件。一些常見的按鈕,標(biāo)簽,框架,菜單。消息,單選按鈕,文本,滾動條等。
          在本文中,我們將創(chuàng)建一個(gè)小游戲。用戶將持續(xù)獲得數(shù)字問題。他們將回答并單擊Enter進(jìn)入下一個(gè)問題,直到他們決定退出并處理結(jié)果。
          正確和不正確的答案將被捕獲,以在最后顯示結(jié)果。我們將使用標(biāo)簽,結(jié)束,條目,文本,按鈕之類的小部件。事不宜遲,讓我們開始實(shí)施吧!

          執(zhí)行

          1.導(dǎo)包

          將所有包分開導(dǎo)入是個(gè)好習(xí)慣。
             
          import tkinter
          import random
          from random import randint
          from tkinter import Button
          import matplotlib.pyplot as plt
          import numpy as np

          2.創(chuàng)建一個(gè)GUI窗口和全局變量聲明

          我們將創(chuàng)建界面布局。確定版面大小和一個(gè)引人注目的標(biāo)題
             
          root = tkinter.Tk()
          root.title("Are you smart!!")
          root.geometry("400x200")
          correct_result=0
          correct_answers=0
          total_questions=0
          incorrect_answer=0

          3.評估結(jié)果的函數(shù)

          我們將創(chuàng)建一個(gè)小小的函數(shù)定義以完成使代碼易于維護(hù)和易于閱讀的任務(wù)
             
          def evaluate(event):
              global correct_result
              global user_input
              user_input_given = user_input.get()
              if str(user_input_given) == str(correct_result):
                  global correct_answers
                  correct_answers += 1
                  nextQuestion()
              else:
                  global incorrect_answer
                  incorrect_answer += 1
                  result = tkinter.Label(root, text="Hard Luck!!nThe correct answer is : "+str(correct_result), font=('Helvetica', 10))
                  result.pack()
                  nextQuestion()
                  root.after(1500, result.destroy)

          4.創(chuàng)建問題的函數(shù)

          我們將使用random來創(chuàng)建隨機(jī)整數(shù),并為'+','-'和'*'運(yùn)算符創(chuàng)建隨機(jī)選擇,以便用戶可以獲取隨機(jī)的數(shù)字問題集來回答
             
          def nextQuestion():
              user_input.focus_set()
              user_input.delete(0, tkinter.END)
              global first_num
              first_num = randint(1,15)
              global second_num
              second_num = randint(1,15)
              global character
              character = random.choice("+-*")
              global correct_result
              if character == '*':
                  correct_result = first_num*second_num
              if character == '+':
                  correct_result = first_num+second_num
              if character == '-':
                  correct_result = first_num-second_num
              text="Enter the value of "+str(first_num)+" "+character+" "+str(second_num)
              global total_questions
              total_questions += 1
              user_question.config(text=text)
              user_question.pack()

          5.退出函數(shù)

          我們將創(chuàng)建一個(gè)微型函數(shù)以退出并記錄結(jié)果
             
          def exitThis():
              print("Total Questions attended : "+str(total_questions))
              print("Total Correct Answers : "+str(correct_answers))
              print("Total Incorrect Answers : "+str(incorrect_answer))
              root.destroy()

          6.最初的問題

          我們將基于隨機(jī)整數(shù)和數(shù)字運(yùn)算符的隨機(jī)集合創(chuàng)建問題的初始集合
             
          first_num = randint(1,15)
          second_num = randint(1,15)
          character = random.choice("+-*")
          if character == '*':
              correct_result = first_num*second_num
          if character == '+':
              correct_result = first_num+second_num
          if character == '-':
              correct_result = first_num-second_num

          7.標(biāo)簽創(chuàng)建

          我們將創(chuàng)建界面的文本和布局
             
          user_question = tkinter.Label(root, text="Enter the value of "+str(first_num)+" "+character+" "+str(second_num), font=('Helvetica', 10))
          user_question.pack()
          user_input = tkinter.Entry(root)
          root.bind('<Return>',evaluate)
          user_input.pack()
          user_input.focus_set()
          exitButton = Button(root, text="EXIT and Check Result"command=exitThis)
          exitButton.pack(side="top", expand=True, padx=4, pady=4)

          8.啟動GUI

             
          root.mainloop()

          9.結(jié)果可視化

          在用戶決定退出游戲后,我們將使用條形圖和餅形圖向用戶顯示結(jié)果
             
          #Plotting the bar graph
          plt.figure(0)
          objects = ('Total Number of Questions','Correct Answers','Incorrect answers')
          y_pos = np.arange(len(objects))
          stats = [total_questions,correct_answers,incorrect_answer]
          plt.bar(y_pos, stats, align='center', alpha=0.5)
          plt.xticks(y_pos, objects)
          plt.ylabel('Numbers')
          plt.title('Your Result!')
             
          #Plotting the pie chart
          if str(total_questions) != "0":
          plt.figure(1)
          labels = 'Correct Answers','Incorrect answers'
          sizes = [correct_answers,incorrect_answer]
          colors = ['green''red']
          explode = (0.1, 0) # explode 1st slice
          plt.pie(sizes, explode=explode, labels=labels, colors=colors,
          autopct='%1.1f%%', shadow=True, startangle=140)
          plt.axis('equal')

          #Show both the graphs
          plt.show()

          結(jié)論

          如果你走到這一步,那么你一定真的很感興趣!
          讓我們看看它最終的樣子
          你可以點(diǎn)擊以下鏈接查看代碼
          • https://github.com/prachiprakash26/Play-with-Numbers



          ☆ END ☆
                   
          個(gè)人微信(如果沒有備注不拉群!
          請注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱



          下載1:何愷明頂會分享


          AI算法與圖像處理」公眾號后臺回復(fù):何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經(jīng)典工作的總結(jié)分析


          下載2:終身受益的編程指南:Google編程風(fēng)格指南


          AI算法與圖像處理」公眾號后臺回復(fù):c++,即可下載。歷經(jīng)十年考驗(yàn),最權(quán)威的編程規(guī)范!



                 
          下載3 CVPR2021

          AI算法與圖像處公眾號后臺回復(fù):CVPR,即可下載1467篇CVPR 2020論文 和 CVPR 2021 最新論文

          點(diǎn)亮 ,告訴大家你也在看

          瀏覽 99
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美日韩国产在线手机 | 干综合网 | 爱爱91N在线观看 | 日本黄色视频网站大全 | 青娱乐在线电影 |