使用tkinter和configpars在按下按钮时提交多个配置文件更改

2024-09-29 00:15:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个程序,有一个用tkinter构建的菜单。菜单上有几个按钮,按下后,用户可以选择文件的特定位置。这是代码:

def open_vend_direct():
    vend_directory = filedialog.askopenfilename(
        initialdir="/", title="Select file", filetypes=(("Excel Files (CSV)", "*.csv"), ("all files", "*.*")))
    parser = ConfigParser()
    parser.read('config.ini')
    parser.set('VendorList','List_Location',vend_directory)

def open_attach_direct():
    vend_attach_direct = filedialog.askdirectory()
    parser = ConfigParser()
    parser.read('config.ini')
    parser.set('VendorFile','file_Location',vend_attach_direct)

def open_log_direct():
    log_locate = filedialog.askdirectory()
    parser = ConfigParser()
    parser.read('config.ini')
    parser.set('LogFolder','log_location',log_locate)

我有另一个按钮,应该应用所有更改。对于此函数,我尝试了以下方法,但不起作用:

def apply_option():
    parser = ConfigParser()
    parser.read('config.ini')
    with open('config.ini', 'w') as f:
        parser.write(f)

在我以前使用的三个按钮功能中:

with open('config.ini', 'w') as f:
        parser.write(f)

这是可行的,但问题是每次用户更改文件位置时,它都会自动保存和更新程序。我只希望在按下“应用更改”按钮时保存更改

编辑:菜单上还有其他选项(我希望应用更改也能影响的选中按钮)

是因为它们都有不同的功能吗


Tags: logconfigparserreaddef菜单open按钮
1条回答
网友
1楼 · 发布于 2024-09-29 00:15:16

每次启动解析器并读取文件时,都会将解析器重置为config.ini中的值。 所以,将解析器的初始化和解析器的读取放在全局函数中。 那么它应该会起作用

相关问题 更多 >