python - Tkinter PopUp 窗口未从 Entry 和 Combobox 中获取文本变量值
问题描述
我在 Python3 中使用 Tkinter 创建了一个 GUI,其中一个功能是单击按钮后弹出窗口。这就是我的弹出窗口的样子。弹出窗口将接受用户输入并从类对象(self)中更新一个变量。一切正常,除了函数UpdateValues()中的部分,如下面的代码所示。
在弹出窗口中输入并更新频率(代码中的变量频率)和迭代(代码中的变量循环)值后,它们无法在终端上打印并出现空白屏幕。因此self.freq和self.loop无法更新。
我是 python-classes 和 tkinter 的新手,现在一直在努力解决这个问题。任何帮助都感激不尽。谢谢!
代码:
'''Class and other attributes here'''
# Blinking light ssh command
self.freq = "500"
self.loop = "10"
def RunCode():
cmd = "sshpass -p \"raspberry\" ssh -to StrictHostKeyChecking=no pi@pi ./led "+self.freq+" "+self.loop
os.system(cmd)
def PopUpBox1():
popup = tk.Tk()
popup.title("Edit Parameters")
w = 325
h = 75
x = (ws/2) - w/2
y = (hs/2) - h/2
popup.geometry('%dx%d+%d+%d' % (w,h,x,y))
popup.resizable(False,False)
# Adding widgets to PopUpBox
# Modified Button Click Function for Update
def UpdateValues():
update.configure(text='Updated')
print(freq.get())
print(loop.get())
self.freq = str(freq.get())
self.loop = str(loop.get())
popup.destroy()
# Frequency and Iterations label
ttk.Label(popup, text="Frequency:",font='200').grid(column=0, row=0, padx=4, pady=4, sticky='w')
ttk.Label(popup, text="Iterations:",font='200').grid(column=1, row=0, padx=4, pady=4, sticky='w')
# Adding a Textbox Entry widget for frequency values
freq = tk.StringVar()
name_entered = tk.Entry(popup, width=12, textvariable=freq)
name_entered.grid(column=0, row=1, padx=4, pady=4)
# Adding a Combobox for iteration values
loop = tk.StringVar()
number_chosen = ttk.Combobox(popup, width=12, textvariable=loop)
number_chosen['values'] = (1, 2, 4, 42, 100)
number_chosen.grid(column=1, row=1, padx=4, pady=4)
number_chosen.current(0)
# Adding a Button for Updation
update = ttk.Button(popup, text="Update", command = UpdateValues)
update.grid(column=2, row=1, padx=4, pady=4)
# Place cursor into name Entry
name_entered.focus()
解决方案
推荐阅读
- configuration - QBO3 摘要语句缺少外键详细信息
- javascript - JavaScript中带有逻辑AND(&&)的FOR循环的几个条件
- angular - 无法让这个 Angular Reactive Form(s) 工作:数据绑定错误、存储/获取数据未正确填充表单等
- google-apps-script - Google Doc .makeCopy() 的脚本没有复制评论?
- symfony - Symfony EasyAdminBundle:列表上的关联字段中的 Dql 过滤实体不起作用
- extjs - Ext JS 表单文件在每次提交表单时上传文件
- javascript - 如何收听所有具有“必需”属性的输入?
- xamarin.forms - 将项目集合保存到 sqlite 表
- angular - Angular 组件类选择器,不保留大小写
- python - 无法使用域名打开网站,使用 DigitalOcean 发布