Dan*_*Dan 1 python tkinter button
如何运行if语句来确定单击了哪个按钮?我一直在环顾四周,但我是Tkinter的新手,我不太清楚我应该做什么.
self.button1 = Tkinter.Button(self,text=u"Convert Decimal to Binary", command=self.OnButtonClick)
self.button1.grid(column=1,row=1)
self.button2 = Tkinter.Button(self,text=u"Convert Binary to Decimal", command=self.OnButtonClick)
self.button2.grid(column=1,row=2)
Run Code Online (Sandbox Code Playgroud)
您可以将每个按钮的command
选项设置为lambda
如下所示:
self.button1 = Tkinter.Button(self, ..., command=lambda: self.OnButtonClick(1))
...
self.button2 = Tkinter.Button(self, ..., command=lambda: self.OnButtonClick(2))
Run Code Online (Sandbox Code Playgroud)
然后,self.OnButtonClick
接受一个将成为按钮"id"的参数.它会是这样的:
def OnButtonClick(self, button_id):
if button_id == 1:
# self.button1 was clicked; do something
elif button_id == 2:
# self.button2 was clicked; do something
Run Code Online (Sandbox Code Playgroud)
一种面向对象的方法是将单击的按钮传递给该OnButtonClick()
方法:
def OnButtonClick(self, button):
# do stuff with button passed...
...
Run Code Online (Sandbox Code Playgroud)
为此,需要分两步创建和配置每个按钮。这是必要的,因为您需要将按钮作为参数传递给命令,而这不能在创建按钮本身的同一语句中完成:
button1 = Tkinter.Button(self, text=u"Convert Decimal to Binary")
button1.config(command=lambda button=button1: self.OnButtonClick(button))
button2 = Tkinter.Button(self, text=u"Convert Binary to Decimal")
button2.config(command=lambda button=button2: self.OnButtonClick(button))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12122 次 |
最近记录: |