【问题标题】:Button content into the Entry [closed]进入条目的按钮内容[关闭]
【发布时间】:2012-01-29 11:28:33
【问题描述】:

我的问题是当我单击按钮时如何实现它 - 它将粘贴到条目中 - 作为字符或更多这些按钮

我不需要它的代码。我需要的是这样做的想法。

【问题讨论】:

  • 除非您指定您的 GUI 使用什么,否则很难回答。您还应该包含一个我们可以处理的独立的可测试代码 sn-p。
  • 好心人!这个问题还不错,以至于值得这么多反对票(在我写这篇文章时有 7 个反对票)。这个问题写得不好,但仍然很容易找到答案。我认为 -1 分足以说明问题。

标签: python tkinter tk


【解决方案1】:

这显示了如何使用 tkinter Entry 小部件为两个按钮执行此操作:

from Tkinter import *

class Application(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)

        self.text = Entry(self)
        self.text.pack({"side": "left"})

        self.but1 = Button(self)
        self.but1["text"] = "a"
        self.but1.bind("<Button-1>",  self.do)
        self.but1.pack({"side": "left"})

        self.but2 = Button(self)
        self.but2["text"] = "b"
        self.but2.bind("<Button-1>",  self.do)
        self.but2.pack({"side": "left"})

        self.pack()

    def do(self, event):
        widget = event.widget
        self.text.delete(0, END)
        self.text.insert(0, widget["text"])

root = Tk()
app = Application(master=root)
app.mainloop()

已编辑: 删除了不需要的 root.destroy()。另请参阅下面的 Bryan Oakley cmets,了解使用 command 参数而不是 bind 方法的替代策略

【讨论】:

  • 在按钮上使用绑定而不是使用小部件的command 属性是相当不寻常的。
  • 您的代码的问题是我必须单击 a 或 b。但我的问题是我有机会 a 加 b 甚至可以包括从键盘字符组合输入
  • 好吧,您的帖子要求您提供有关如何操作的想法,另一方面,您的帖子中没有说明此具体说明...无论如何这很容易,删除 self.text.delete 和它将按您的意愿工作
  • @BryanOakley 我只知道 tkinter 的基础知识,所以代码对于专家来说可能有点简单或奇怪。我遇到的问题是我不知道使用commanddo(self,event) 方法中发送事件以获取按钮对象(如widget = event.widget)的方式。这就是我使用 bind 的原因(并且因为我的专长是 wxPython,其中 bind 是要走的路)。你能提示一下如何用命令做同样的事情吗?
  • 非常感谢@BryanOakley,我必须了解这些事件。这是我在 pyhton 上的第一个真正的程序,我已经开始了 2 周的自我学习 python
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-09
  • 1970-01-01
  • 2018-02-20
  • 1970-01-01
  • 2012-03-17
  • 2018-07-09
  • 2011-07-09
相关资源
最近更新 更多