我正在尝试一段基于python的tkinter代码,其目标如下: (请通过目标,然后我将举一个例子来解释我到底需要什么,然后最终会发布我写的脚本)基于configparser文件的动态构件创建
- 从使用configparser模块实现的配置文件读取。
- 基于从此文件中读取的选项,它会自动生成小部件。
- 截至目前,这些小部件仅限于标签和输入框。
- 每个输入框都与一个变量相关联。因此,只要声明了输入框,就需要自动生成变量 。
- 现在,当用户在输入框中输入任何值,并按下计算按钮时,用户输入的值(以特定格式)组合生成的列表为 。
实施例: 让configparser文件有以下内容:
[插件]
标签= ani_label,sham_label
条目= ANI,假
为这种情况生成的列表将如下所示:
out_list = [ '-ani', '< ANI>', ' - 假', '<假>']
< ANI>表示存储在ANI可变
值下面是我试过的代码。
from Tkinter import *
from Tkinter import Tk
import Tkinter as tk
import ttk
import ConfigParser
import sys
############ Initialize ###############################
parser_read = ConfigParser.ConfigParser()
parser_read.read('option_read.config')
config_list = {}
config_list['label'] = parser_read.get('widget','label').split(',')
config_list['entry'] = parser_read.get('widget','entry').split(',')
######
def calculate():
#Will include the list generation part
pass
#######
root = Tk()
root.title("NRUNTEST GUI VERSION 1")
#
menuframe = ttk.Frame(root)
menuframe.grid(column=0,row=0)
menuframe.columnconfigure(0,weight=1)
menuframe.rowconfigure(0,weight=1)
#
mainframe_label = ttk.Frame(root)
mainframe_label.grid(column=1,row=0)
mainframe_label.columnconfigure(0,weight=1)
mainframe_label.rowconfigure(0,weight=1)
#
mainframe_entry = ttk.Frame(root)
mainframe_entry.grid(column=2,row=0)
mainframe_entry.columnconfigure(0,weight=1)
mainframe_entry.rowconfigure(0,weight=1)
#
general_label= Label(menuframe,text="Please Enter the Values Below").grid(column=1,row=0,sticky=(E))
compiler_label= ttk.Label(menuframe,text="Compiler")
compiler_label.grid(column=1,row=1,sticky=W)
#
calculate_button = ttk.Button(menuframe, text="Calculate", command=calculate).grid(column=1,row=2,sticky=(W,E))
#Automatic Widget declaration ###
for x in config_list['label']:
x = ttk.Label(mainframe_label,text=x).grid()
for x in config_list['entry']:
#print x
var = lambda: sys.stdout.write(x)
x = ttk.Entry(mainframe_entry,textvariable = x).grid()
root.mainloop()
option_read.config的内容是
[widget]
label : animesh_label,sharma
entry : animesh_entry,sharma
状态: 我可以自动创建所需的部件。但我无法动态创建变量来存储输入框值。 一旦计算了变量,我就可以自己编写计算函数。
请指教我如何继续。 如果您有更好的方法来满足我的要求,请提出建议。 如果您需要更多输入或者我的查询不清楚,还可以ping通我。
你说你“无法动态创建变量”。为什么?你有错误吗?你是否真的需要使用变量,或者你只是想?您是否知道您不需要使用变量来获取和设置条目窗口小部件的内容。 –
我实际上正在尝试生成单个变量。由于我最近在python中获得了不多的知识,所以这看起来是正确的。 但我的主要目标是开发一个脚本,其中 - 声明,布局和后来的最终输出 - 完全自动化,并且依赖于从configparser文件中读取的内容。 – Ani