首页 > 解决方案 > 如何获取 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()

标签: pythontkinterinputconfig

解决方案


对于您的情况,您可以使用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()

推荐阅读