2014-03-19 396 views
1

代碼:檢查一個按鈕是否在python中被按下?

import sys 
from tkinter import * 

credit = 0 
coins = 0 
choice = 0 


credit1 = 0 
coins = 0 
prices = [200,150,160,50,90] 
item = 0 
i = 0 
temp=0 
n=0 
choice1 = 0 
choice2 = 0 

credit1 = 0 
coins = 0 
prices = [200,150,160,50,90] 
item = 0 
i = 0 
temp=0 
n=0 
choice1 = 0 
choice2 = 0 

def insert(): 
    insert = Tk() 

    insert.geometry("450x250") 
    iLabel = Label(insert, text="Enter coins.[Press Buttons]").grid(row=1, column=1) 

    tenbutton = Button(insert, text="10p").grid(row=2, column=1) 
    twentybutton = Button(insert, text="20p").grid(row=3, column=1) 
    fiftybutton = Button(insert, text="50p").grid(row=4, column=1) 
    poundbutton = Button(insert, text="£1").grid(row=5, column=1) 

我創建模擬自動售貨機的程序。 我如何告訴Python'檢查'A按鈕是否被按下? 僞代碼將是:

if tenbutton is pressed: 
    Add 10p to credit 

我怎麼會用Python語言編寫「如果按下tenbutton」?先謝謝你。

回答

4

您可以將command添加到您的Tkinter Button部件將回調函數:

def tenbuttonCallback(): 
    global credit 
    credit += 10 

tenbutton = Button(insert, text="10p", command=tenbuttonCallback) 
tenbutton.grid(row=2, column=1) 

參見:http://effbot.org/tkinterbook/button.htm

+0

哈哈我們必須google搜索同樣的東西,並得到相同的結果:) – Dunno

+1

我每天都在使用Tkinter。不需要谷歌;) – atlasologist

4

很簡單,定義了一個將按下按鈕後調用的函數。像這樣:

def addCredit(): 
    global credit 
    credit+=10 

,然後分配這個簡單的功能,以您的按鈕:

tenbutton = Button(insert, text="10p", command=addCredit).grid(row=2, column=1) 

順便說一句,你的代碼是很糟糕要求一個class地方。使用如此之多的全局變量通常是一種不好的做法。另一個挑剔是from tkinter import *,它破壞了可讀性。我建議import tkinter as tk

+0

感謝您的幫助!它非常棒! @不知道 – PythonBeginner

相關問題