首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Tkinter创建拨号盘

使用Tkinter创建拨号盘
EN

Stack Overflow用户
提问于 2015-12-06 02:13:06
回答 1查看 623关注 0票数 0

我目前正在尝试创建一个拨号盘,以打印在外壳中按下的按钮。下面是我到目前为止掌握的代码:

代码语言:javascript
复制
from tkinter import Tk, Button, RAISED
root = Tk()
buttons = [['1','2','3'],
          ['4','5','6'],
          ['7','8','9'],
          ['*','0','#']]

def clicked():
    print(Button)

for r in range(4):
    for c in range(3):
        button = Button(root,
                        relief = RAISED,
                        padx = 10,
                        text = buttons[r][c],
                        command = clicked)
        button.grid(row = r, column = c)

root.mainloop()

***OUTPUT***
 <class 'tkinter.Button'>

执行时,拨号盘将正确显示,但按下按钮时,该数字不会打印在控制台中,而是打印上面的数字。对不起,如果这是我的一个简单的错误,但我试图教自己Python,仍然是相对较新的。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-06 02:39:25

您基本上是传递Tk按钮,但是您需要传递按钮值,为了安全和好的方法,只需使用部分

代码语言:javascript
复制
from Tkinter import Tk, Button, RAISED
from functools import partial
root = Tk()
buttons = [['1','2','3'],
          ['4','5','6'],
          ['7','8','9'],
          ['*','0','#']]

def buttonClicked(buttonVal):
    print(buttonVal)

for r in range(4):
    for c in range(3):
        button = Button(root,
                        relief = RAISED,
                        padx = 10,
                        text = buttons[r][c],
                        command = partial(buttonClicked, buttons[r][c]))
        button.grid(row = r, column = c)

root.mainloop()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34113208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档