最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決Tkinter中button按鈕未按卻主動(dòng)執(zhí)行command函數(shù)的問(wèn)題

 更新時(shí)間:2021年05月22日 12:03:35   作者:guge907  
這篇文章主要介紹了解決Tkinter中button按鈕未按卻主動(dòng)執(zhí)行command函數(shù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

在使用Tkinter做界面時(shí),遇到這樣一個(gè)問(wèn)題:

程序剛運(yùn)行,尚未按下按鈕,但按鈕的響應(yīng)函數(shù)卻已經(jīng)運(yùn)行了

例如下面的程序:

from Tkinter import *
class App:
 def __init__(self,master):
  frame = Frame(master)
  frame.pack()
  Button(frame,text='1', command = self.click_button(1)).grid(row=0,column=0)
  Button(frame,text='2', command = self.click_button(2)).grid(row=0,column=1)
  Button(frame,text='3', command = self.click_button(1)).grid(row=0,column=2)
  Button(frame,text='4', command = self.click_button(2)).grid(row=1,column=0)
  Button(frame,text='5', command = self.click_button(1)).grid(row=1,column=1)
  Button(frame,text='6', command = self.click_button(2)).grid(row=1,column=2)
 def click_button(self,n):
  print 'you clicked :',n
  
root=Tk()
app=App(root)
root.mainloop()

程序剛一運(yùn)行,就出現(xiàn)下面情況:

六個(gè)按鈕都沒(méi)有按下,但是command函數(shù)卻已經(jīng)運(yùn)行了

后來(lái)通過(guò)網(wǎng)上查找,發(fā)現(xiàn)問(wèn)題原因是command函數(shù)帶有參數(shù)造成的

tkinter要求由按鈕(或者其它的插件)觸發(fā)的控制器函數(shù)不能含有參數(shù)

若要給函數(shù)傳遞參數(shù),需要在函數(shù)前添加lambda。

原程序可改為:

from Tkinter import *
class App:
 def __init__(self,master):
  frame = Frame(master)
  frame.pack()
  Button(frame,text='1', command = lambda: self.click_button(1)).grid(row=0,column=0)
  Button(frame,text='2', command = lambda: self.click_button(2)).grid(row=0,column=1)
  Button(frame,text='3', command = lambda: self.click_button(1)).grid(row=0,column=2)
  Button(frame,text='4', command = lambda: self.click_button(2)).grid(row=1,column=0)
  Button(frame,text='5', command = lambda: self.click_button(1)).grid(row=1,column=1)
  Button(frame,text='6', command = lambda: self.click_button(2)).grid(row=1,column=2)
 def click_button(self,n):
  print 'you clicked :',n  
root=Tk()
app=App(root)
root.mainloop()

補(bǔ)充:Tkinter Button按鈕組件調(diào)用一個(gè)傳入?yún)?shù)的函數(shù)

這里我們要使用python的lambda函數(shù),lambda是創(chuàng)建一個(gè)匿名函數(shù),冒號(hào)前是傳入?yún)?shù),后面是一個(gè)處理傳入?yún)?shù)的單行表達(dá)式。

調(diào)用lambda函數(shù)返回表達(dá)式的結(jié)果。

首先讓我們創(chuàng)建一個(gè)函數(shù)fun(x):

def fun(x):
    print x

隨后讓我們創(chuàng)建一個(gè)Button:(這里省略了調(diào)用Tkinter的一系列代碼,只寫(xiě)重要部分)

Button(root, text='Button', command=lambda :fun(x))

下面讓我們創(chuàng)建一個(gè)變量x=1:

x = 1

最后點(diǎn)擊這個(gè)Button,就會(huì)打印出 1了。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python文本進(jìn)度條實(shí)例

    python文本進(jìn)度條實(shí)例

    這篇文章主要為大家介紹了python文本進(jìn)度條,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • Jupyter Notebook/VSCode導(dǎo)出PDF中文不顯示的解決

    Jupyter Notebook/VSCode導(dǎo)出PDF中文不顯示的解決

    這篇文章主要介紹了Jupyter Notebook/VSCode導(dǎo)出PDF中文不顯示的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 簡(jiǎn)單介紹Python中的try和finally和with方法

    簡(jiǎn)單介紹Python中的try和finally和with方法

    這篇文章主要介紹了Python中的try和finally和with方法,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • 基于opencv對(duì)高空拍攝視頻消抖處理方法

    基于opencv對(duì)高空拍攝視頻消抖處理方法

    這篇文章主要介紹了基于opencv對(duì)高空拍攝視頻消抖處理,首先對(duì)視頻進(jìn)行抽第一幀與最后一幀,為什么抽取兩幀?這樣做的主要目的是,我們?cè)谧鰩瑢?duì)齊時(shí),使用幀中靜態(tài)物的關(guān)鍵點(diǎn)做對(duì)齊,需要的朋友可以參考下
    2022-10-10
  • python腳本實(shí)現(xiàn)驗(yàn)證碼識(shí)別

    python腳本實(shí)現(xiàn)驗(yàn)證碼識(shí)別

    這篇文章主要為大家詳細(xì)介紹了python腳本實(shí)現(xiàn)驗(yàn)證碼識(shí)別的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 將python圖片轉(zhuǎn)為二進(jìn)制文本的實(shí)例

    將python圖片轉(zhuǎn)為二進(jìn)制文本的實(shí)例

    今天小編就為大家分享一篇將python圖片轉(zhuǎn)為二進(jìn)制文本的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 詳解有關(guān)PyCharm安裝庫(kù)失敗的問(wèn)題的解決方法

    詳解有關(guān)PyCharm安裝庫(kù)失敗的問(wèn)題的解決方法

    這篇文章主要介紹了詳解有關(guān)PyCharm安裝庫(kù)失敗的問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 人工智能學(xué)習(xí)Pytorch數(shù)據(jù)集分割及動(dòng)量示例詳解

    人工智能學(xué)習(xí)Pytorch數(shù)據(jù)集分割及動(dòng)量示例詳解

    這篇文章主要為大家介紹了人工智能學(xué)習(xí)Pytorch數(shù)據(jù)集分割及動(dòng)量示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • python中的全局變量與局部變量解讀

    python中的全局變量與局部變量解讀

    這篇文章主要介紹了python中的全局變量與局部變量用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • python如何禁用print輸出

    python如何禁用print輸出

    這篇文章主要介紹了python如何禁用print輸出問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02

最新評(píng)論

桃源县| 南靖县| 旌德县| 东明县| 临夏县| 牟定县| 平邑县| 微博| 资溪县| 大竹县| 黑水县| 玛多县| 长沙县| 东至县| 新郑市| 渝北区| 邛崃市| 稻城县| 四会市| 老河口市| 东海县| 克什克腾旗| 晋江市| 建昌县| 灵丘县| 永川市| 黎川县| 明溪县| 三穗县| 乐山市| 汉川市| 南开区| 城口县| 郯城县| 昌吉市| 商洛市| 乐山市| 山东省| 集贤县| 乌拉特中旗| 汕尾市|