【问题标题】:how to put a code that if a button is pressed, a message pops up?如何放置一个代码,如果按下按钮,则会弹出一条消息?
【发布时间】:2018-12-16 12:28:10
【问题描述】:

基本上我今天学习了 Python,我正在尝试制作我的第一个项目,这将是一个刽子手游戏,没什么特别的,只是开始制作的东西。 关于我的问题..如果按下一个键,我如何弹出一条消息?我知道它是打印(“消息”)。 但是我如何“检测”是否按下了某个键? 这是代码(代码不高级,我说过了。。我今天开始学习了):

from tkinter import *
root = Tk()

topFrame = Frame(root)
topFrame.pack()
bottomFrame = Frame(root)
bottomFrame.pack(side=BOTTOM)

A = Button(topFrame, text="A", bg="green", fg="white")
B = Button(topFrame, text="B", bg="green", fg="white")
C = Button(topFrame, text="C", bg="green", fg="white")
D = Button(topFrame, text="D", bg="green", fg="white")
E = Button(topFrame, text="E", bg="green", fg="white")
F = Button(topFrame, text="F", bg="green", fg="white")
G = Button(topFrame, text="G", bg="green", fg="white")
H = Button(topFrame, text="H", bg="green", fg="white")
I = Button(topFrame, text="I", bg="green", fg="white")
J = Button(topFrame, text="J", bg="green", fg="white")
K = Button(topFrame, text="K", bg="green", fg="white")
L = Button(topFrame, text="L", bg="green", fg="white")
M = Button(topFrame, text="M", bg="green", fg="white")
N = Button(topFrame, text="N", bg="green", fg="white")
O = Button(topFrame, text="O", bg="green", fg="white")
P = Button(topFrame, text="P", bg="green", fg="white")
Q = Button(topFrame, text="Q", bg="green", fg="white")
R = Button(topFrame, text="R", bg="green", fg="white")
S = Button(topFrame, text="S", bg="green", fg="white")
T = Button(topFrame, text="T", bg="green", fg="white")
U = Button(topFrame, text="U", bg="green", fg="white")
V = Button(topFrame, text="V", bg="green", fg="white")
W = Button(topFrame, text="W", bg="green", fg="white")
X = Button(topFrame, text="X", bg="green", fg="white")
Y = Button(topFrame, text="Y", bg="green", fg="white")
Z = Button(topFrame, text="Z", bg="green", fg="white")




A.pack(side=LEFT)
B.pack(side=LEFT)
C.pack(side=LEFT)
D.pack(side=LEFT)
E.pack(side=LEFT)
F.pack(side=LEFT)
G.pack(side=LEFT)
H.pack(side=LEFT)
I.pack(side=LEFT)
J.pack(side=LEFT)
K.pack(side=LEFT)
L.pack(side=LEFT)
M.pack(side=LEFT)
N.pack(side=LEFT)
O.pack(side=LEFT)
P.pack(side=LEFT)
Q.pack(side=LEFT)
R.pack(side=LEFT)
S.pack(side=LEFT)
T.pack(side=LEFT)
U.pack(side=LEFT)
V.pack(side=LEFT)
W.pack(side=LEFT)
X.pack(side=LEFT)
Y.pack(side=LEFT)
Z.pack(side=LEFT)


if A is pressed:
    print("Wrong letter, that's a strike!")





root.mainloop()

我试过了

如果按下 A: print("写错了,罢工!")

它不起作用。

【问题讨论】:

标签: python tkinter


【解决方案1】:

当你点击一个按钮时,tkinter 主循环捕获事件并寻找与之相关的东西。为了将我们的代码与按钮点击事件联系起来,我们应该通过命令传递事件发生时要运行的内容参数。 首先,您必须定义我们希望在单击按钮时发生什么。

由于 print 函数在控制台中而不是在 gui 中显示输出,因此使用 print() 来显示输出是没有意义的。如果我们使用标签在 gui 本身中显示输出会更好。

def on_click():
    label.config(text = 'Wrong letter! that's a strike')

为此,我们应该在 gui 中添加一个标签。这可以通过

label = Label(root,font = 'size,20')
label.pack(side = 'bottom')

终于可以配置按钮代码了。

A = Button(topFrame, text="A", bg="green", fg="white", command=on_click)

当我们单击按钮时,这将使文本出现在标签上。

【讨论】:

    【解决方案2】:
    ...
    def callback():
        print("Wrong letter, that's a strike!")    
    ...
    A = Button(topFrame, text="A", bg="green", fg="white", command=callback)
    ...
    

    以上应该可以。 http://effbot.org/tkinterbook/ 是一个很好的 Tkinter 资源,虽然我不知道学习 Tkinter 这样的库是否是开始学习 Python 的好地方。

    【讨论】:

    • A 中使用之前不应该定义callback 吗?通过运行您的示例,它将引发NameError
    • 是的,当然。没想到吧不管怎样,这不是重点。
    【解决方案3】:

    只需将命令属性添加到您要用于打印该行的按钮。 我已经为下面的按钮 A 完成了它:

    from tkinter import *
    root = Tk()
    
    topFrame = Frame(root)
    topFrame.pack()
    bottomFrame = Frame(root)
    bottomFrame.pack(side=BOTTOM)
    
    A = Button(topFrame, text="A", bg="green", fg="white", command=lambda: print("Wrong letter, that's a strike!"))
    B = Button(topFrame, text="B", bg="green", fg="white")
    C = Button(topFrame, text="C", bg="green", fg="white")
    D = Button(topFrame, text="D", bg="green", fg="white")
    E = Button(topFrame, text="E", bg="green", fg="white")
    F = Button(topFrame, text="F", bg="green", fg="white")
    G = Button(topFrame, text="G", bg="green", fg="white")
    H = Button(topFrame, text="H", bg="green", fg="white")
    I = Button(topFrame, text="I", bg="green", fg="white")
    J = Button(topFrame, text="J", bg="green", fg="white")
    K = Button(topFrame, text="K", bg="green", fg="white")
    L = Button(topFrame, text="L", bg="green", fg="white")
    M = Button(topFrame, text="M", bg="green", fg="white")
    N = Button(topFrame, text="N", bg="green", fg="white")
    O = Button(topFrame, text="O", bg="green", fg="white")
    P = Button(topFrame, text="P", bg="green", fg="white")
    Q = Button(topFrame, text="Q", bg="green", fg="white")
    R = Button(topFrame, text="R", bg="green", fg="white")
    S = Button(topFrame, text="S", bg="green", fg="white")
    T = Button(topFrame, text="T", bg="green", fg="white")
    U = Button(topFrame, text="U", bg="green", fg="white")
    V = Button(topFrame, text="V", bg="green", fg="white")
    W = Button(topFrame, text="W", bg="green", fg="white")
    X = Button(topFrame, text="X", bg="green", fg="white")
    Y = Button(topFrame, text="Y", bg="green", fg="white")
    Z = Button(topFrame, text="Z", bg="green", fg="white")
    
    
    
    
    A.pack(side=LEFT)
    B.pack(side=LEFT)
    C.pack(side=LEFT)
    D.pack(side=LEFT)
    E.pack(side=LEFT)
    F.pack(side=LEFT)
    G.pack(side=LEFT)
    H.pack(side=LEFT)
    I.pack(side=LEFT)
    J.pack(side=LEFT)
    K.pack(side=LEFT)
    L.pack(side=LEFT)
    M.pack(side=LEFT)
    N.pack(side=LEFT)
    O.pack(side=LEFT)
    P.pack(side=LEFT)
    Q.pack(side=LEFT)
    R.pack(side=LEFT)
    S.pack(side=LEFT)
    T.pack(side=LEFT)
    U.pack(side=LEFT)
    V.pack(side=LEFT)
    W.pack(side=LEFT)
    X.pack(side=LEFT)
    Y.pack(side=LEFT)
    Z.pack(side=LEFT)
    
    root.mainloop()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-06
      相关资源
      最近更新 更多