python - 如何获取 Tkinter 输入并放入配置
问题描述
例如,我想从 tkinter 获取输入,并在 GUI 中显示"how much do you like cars from 1 - 10?"
,然后受害者输入一个数字,例如8
我如何将输入传输到我的 settings.ini?
我的代码:
root = Tk()
config = ConfigParser()
updater = ConfigUpdater()
path = os.path.dirname(os.path.abspath(__file__))
configPath = os.path.join(path, "settings.ini")
updater.read('settings.ini')
updater['Trading Settings']['maximum_value_gain'].value = "the input I want from tkinter user"
updater.update_file()
root.mainloop()
解决方案
对于您的情况,您可以使用OptionMenu
如下评级输入:
import os
import tkinter as tk
from configupdater import ConfigUpdater
appPath = os.path.dirname(os.path.abspath(__file__))
configPath = os.path.join(appPath, "settings.ini")
updater = ConfigUpdater()
updater.read(configPath) # settings.ini must exists, otherwise exception
root = tk.Tk()
tk.Label(root, text='How much do you like cars (from 1 - 10)?').grid(row=0, column=0)
rating = tk.StringVar()
rating_opt = tk.OptionMenu(root, rating, *range(1, 11)) # dropdown with values 1 to 10
rating_opt.config(width=5)
rating_opt.grid(row=0, column=1)
def update():
value = rating.get()
# update ini file only when user has selected a rating
if value:
updater['Trading Settings']['maximum_value_gain'].value = rating.get()
updater.update_file()
tk.Button(root, text='Update', command=update).grid(row=2, column=0, columnspan=2)
root.mainloop()
推荐阅读
- css - 我的评分和评论部分没有响应并且在小屏幕上显示很糟糕
- r - 以 data.table 方式合并 2 个 data.tables 与多于一列
- spring-cloud-dataflow - 在 Spring Cloud Data Flow 服务器中启动 SpringBatch 应用程序,其中 springboot 微服务在单独的独立服务器中运行
- python - 是否可以根据 python 中的另一个键搜索 json 对象键?
- flutter - 在 Flutter 的 onTap 闭包中调用 await
- javascript - 一个变量js中的多个字符串
- javascript - 引导选项卡在初始加载时加载 videoGrid 内容,但是当单击第二个选项卡,然后再次单击第一个选项卡时,它会加载第二个选项卡内容
- mysql - 如何在MYSQL(5.7版)中表的每个类别中获取只有最大年份的所有行
- c++ - 为什么从声明中分离模板 constexpr / 内联函数实现在显式实例化时效果很好?
- django - DJANGO - 模型的帮助文本中的 HTML