首页 > 解决方案 > 如何在不使用 Tkinter 中的 Entry 小部件的情况下制作一个按钮,当按下它时将产品名称显示到 Text 小部件

问题描述

我试图为一家汉堡店制作一个 POS,当我按下一个产品按钮时,它会在不使用条目小部件的情况下将产品名称显示到收货区域,这是文本小部件

这是我的示例代码

from tkinter import *

root = Tk()
root.title('Login')
root.geometry('759x500+300+180')
root.resizable(0,0)


def receipt():
    
    item1 = Burger
    txt.insert(0.0, item1)
        
product1 = Button(root, text="Burger", borderwidth=2, padx=50, pady=40, command=receipt)
product1.pack()

txt = Text(root, width=30, height=20)
txt.pack()
   
root.mainloop()

谢谢你

对不起一个简单的问题我只是一个初学者

标签: python-3.xtkinter

解决方案


首先,您应该将产品传递给receipt()函数,因为您可能有多个产品要添加到文本框中。

第二个建议使用Listbox,而不是Text

from tkinter import *

root = Tk()
root.title('Login')
root.geometry('+300+180')
root.resizable(0,0)


def receipt(item):
    lstbox.insert('end', item)

button_frame = Frame(root)
button_frame.pack(side='left', fill='y')

products = ["Burger", "Apple Pie"]
for product in products:
    btn = Button(button_frame, text=product, width=15, height=3, borderwidth=2,
                 command=lambda p=product: receipt(p))
    btn.pack()

lstbox = Listbox(root, width=30, height=20, activestyle='none')
lstbox.pack(side='right')
   
root.mainloop()

推荐阅读