[英]printing a selected value from a combobox into a textbox
我有一个包含 50+ 帧的 Python 文件。 每个框架有 5 个单选按钮和 1 个文本框。 每个单选按钮都有一个预先确定的数值,将打印到文本框。
我想做的是用 combobox 替换单选按钮。 combobox 设置有一个带有数学方程的基本数值。
该原理有效,但我只能将其打印到 shell。
在过去的几个月里,我从帖子中尝试了许多不同的代码。
我认为社区可能会帮助我。
我附上了我的代码片段。
from tkinter import *
from tkinter import Tk
import tkinter as tk
from tkinter import ttk
from tkinter.ttk import Combobox
root=tk.Tk()
root.title("Dental Milling Machines")
root.geometry("250x200")
def onclick1():
textbox1.delete('1.0', 'end')
textbox1.insert('end', '2.83')
def onclick2():
textbox1.delete('1.0', 'end')
textbox1.insert('end', '5.66')
def Cnum():
print(combobox1.current()*2.83)
cb_var1 = tk.IntVar()
frame1 = Frame(root, height = 150, width= 150, relief= RAISED, bd=8, bg="blue")
frame1.grid(row=0, column=0, pady=2,sticky="NW")
label = Label(frame1, text="Frame 1", fg="red")
label.grid(row=0, columnspan=3, pady= 1, sticky= "W")
button1=Radiobutton(frame1, text="Submit", command=Cnum)
button1.grid(row=1, column=1, pady= 1, padx= 5, sticky= "W")
textbox1=Text(frame1, borderwidth=1, wrap="none", width=5, height=1)
textbox1.grid(row=0, column=1,padx=10, sticky="W")
combobox1=Combobox(frame1, width=7)
combobox1.grid(row=1, column=0)
combobox1['values'] = ( '', ' 1', ' 2', ' 3', ' 4', ' 5')
button1=Radiobutton(frame1, text="1 Unit ", variable=cb_var1, command=onclick1)
button1.grid(row=2, column=0, pady= 1, padx= 5, sticky= "W")
button2=Radiobutton(frame1, text="2 Unit ", variable=cb_var1, command=onclick2)
button2.grid(row=4, column=0, pady= 1, padx= 5, sticky= "W")
root.mainloop()
这会将 2.83 的结果乘以从 combobox 中选择的值到 textbox1 中。
def Cnum():
textbox1.insert(tk.END, combobox1.current() * 2.83)
如果您希望在 combobox 中选择值时更新文本框中的值,我们可以将其 ComboboxSelected 事件绑定到 Cnum。
为此,我们需要更改代码中的一些内容。
首先我们需要添加代码来绑定事件,
combobox1=Combobox(frame1, width=7)
combobox1.grid(row=1, column=0)
combobox1['values'] = ( '', ' 1', ' 2', ' 3', ' 4', ' 5')
# bind ComboboxSelected event to Cnum
combobox1.bind('<<ComboboxSelected>>', Cnum)
我们需要更改 Cnum function 以获取事件参数。
def Cnum(event):
textbox1.delete('1.0', 'end')
textbox1.insert("1.0", combobox1.current() * 2.83)
现在要设置/更改文本框中的值,您需要做的就是 select combobox 中的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.