当前位置: 首页 > 面试题库 >

在tkinter中单击按钮后,一种返回按钮文本的方法

龙逸清
2023-03-14
问题内容

我正在尝试创建使用此lambda函数单击的按钮的列表:

button1.config(command=(lambda x: (clicked.append(x)))(button1.cget("text")))

似乎有点工作,但它会立即打印按钮文本,即它不等待用户单击按钮。

关于如何使其对按钮单击做出响应的任何想法?

class GraphicsInterface:

    def __init__(self):
        self.window = Tk()
        self.window.geometry("720x500")

        clicked=[]
        button1 = Button(self.window, text="Dice 1", width=13)
        button1.place(x=60, y=160)

        button1.config(command=(lambda x: (clicked.append(x)))(button1.cget("text")))

        print(clicked)

问题答案:

试图在lambda中完成所有这些操作是错误的方法。简直太令人困惑了,即使不是不可能做您想做的事情。而是创建一个可以完成工作的方法,并仅将lambda用作调用该函数的一种方式:

from Tkinter import *
class GraphicsInterface:

    def __init__(self):
        self.window = Tk()
        self.window.geometry("720x500")

        self.clicked=[]
        button1 = Button(self.window, text="Dice 1", width=13)
        button2 = Button(self.window, text="Dice 2", width=13)
        button1.pack()
        button2.pack()

        button1.configure(command=lambda btn=button1: self.OnClick(btn))
        button2.configure(command=lambda btn=button2: self.OnClick(btn))

        self.window.mainloop()

    def OnClick(self, btn):
        text = btn.cget("text")
        self.clicked.append(text)
        print "clicked:", self.clicked

app = GraphicsInterface()


 类似资料:
  • 我需要一些android编程的帮助。所以onbutton click我在icite方法中调用。基本上,当单击按钮时,所有文本框文本都将转换为一个新变量上的字符串。之后,我将所有变量组合成一个名为total的字符串。然后将标签textView10的文本更改为字符串total。然而,它只是崩溃了我的应用程序。你知道我可能做错了什么吗?我的猫: 代码

  • 在我的程序中,它将单击浏览器中的一个按钮,并且在该页面中,应该会出现另一个按钮。出现该按钮后,我的程序将立即运行下一个操作来单击下一个按钮。我目前收到此错误: ElementNotVisibleException:消息:元素不可见 因此,我假设我正在调用该操作,以便在该按钮出现之前单击下一个按钮。我的问题是,我该怎么做才能让我的程序等到我可以点击按钮,再点击按钮? 这就是我的程序底部的代码的样子。

  • 我正在尝试实现一个名为“五连胜”的游戏。我创建了一个15×15的列表来放置按钮。(我使用range(16),因为我还需要一行和一列来显示行号和列号) 我希望我的实现会像点击一个按钮时,它会变成一个标签。但是我不知道用户点击了哪个按钮。 我如何才能实现这一点?谢谢 在Python TKinter?中,有一个类似的问题,即如何确定哪个按钮被按出了按钮网格?。但我不太明白。

  • 编辑:底部的解决方案 这是一个跳棋游戏。单击一个按钮后,它等待单击第二个按钮与之交换。然而,有时你可能不想移动那个按钮,但一旦你点击了它,就没有回头路了,因为我无法禁用它。 在这里的其他帖子中,我看到人们使用 这只是使它在第一次单击后不可见。 这什么都干不了。 这也没什么用。编辑:所有这些方法都用true和false进行了尝试。 私有无效交换(){ 但你也需要 这样它就重新启用了它,或者其他什么,

  • 我正试图让JQuery在按下下一个按钮时自动单击该按钮。在互联网上,我发现应该是这样的(查看JQuery部分)。但由于某种原因,它不起作用。 它们必须在同一个代码中吗? 我尝试过的:JQuery: 表单中的按钮1 HTML: 表单中的按钮2 HTML:

  • 使用React钩子,我想改变我的按钮的文本,当用户点击它说“添加”,然后我想设置回原来的文本“添加到购物车”后1秒。我假设我会为此使用setTimeout,但在这种情况下,我很难弄清楚如何使用它。 我有这个 到目前为止。