2017-02-02 4 views
0

私は、エントリ/テキストフィールドに値を格納するために、tkinterとconfigparserを持つシンプルなGUIアプリケーションを作成しました。Tkinterのconfigparser - idで新しいiniファイルを作成しますか?

しかし、私は何かに助けが必要です。ユーザーがボタンから入力を保存し、無限に1から始まるIDをinifileに与えるたびに、新しいiniファイルを割り当てるようにしたい。

したがって、ユーザーはすべての項目を入力し、すべての情報を保存ボタンを押します。 guiは新しいinifile(1)を生成する必要があります。

def saveConfig(): 
    filename = "config.ini" 
    file = open(filename, 'w') 
    Config = configparser.ConfigParser() 
    Config.add_section('ORDERDATA') 
    Config.set("ORDERDATA", "REKVIRENT", e1.get()) 
    Config.set("ORDERDATA", "MODTAGER", e2.get()) 
    Config.set("ORDERDATA", "PATIENTFORNAVN", e3.get()) 
    Config.set("ORDERDATA", "PATIENTEFTERNAVN", e4.get()) 
    Config.set("ORDERDATA", "CPR", e7.get()) 
    Config.set("ORDERDATA", "DOKUMENTATIONSDATO", e5.get()) 
    Config.set("ORDERDATA", "ØNSKET UNDERSØGELSE", e6.get()) 
    Config.set("ORDERDATA", "ANAMNESE", t1.get('1.0', END)) 
    Config.set("ORDERDATA", "INDIKATION", t2.get('1.0', END)) 
    Config.write(file) 
    file.close() 

答えて

0

あなたはあなたのプログラムが昇順の番号ですべての設定ファイルを保存したい場合は、次の手順を実行できます。Pythonの3のために

# Python 2.7 
import os 
import ConfigParser as cp 
import Tkinter as tk 

def saveConfig(): 
    config = cp.ConfigParser() 
    config.add_section("ORDERDATA") 
    config.set("ORDERDATA", "REKVIRENT", e1.get()) 
    # Set all your settings here 
    # Using os.listdir(), you can get the files in a folder in a list 
    list_files = os.listdir(os.getcwd()) 
    # You can then convert the names of the files into integers for all 
    # .ini files 
    list_numbers = [int(x[:-4]) for x in list_files if x.endswith(".ini")] 
    # If the length of this new list is 0, max will throw a ValueError 
    if len(list_numbers) != 0: 
     # Calculate the new file number by adding one to the highest found number 
     new_file_num = max(list_numbers) + 1 
    # To prevent the ValueError, set the number to 1 if no files are present 
    else: 
     new_file_num = 1 
    # Derive the name of the file here 
    new_file_name = str(new_file_num) + ".ini" 
    # Open the file and write to it 
    with open(new_file_name, "w") as file_obj: 
     config.write(file_obj) 


root = tk.Tk() 
e1 = tk.Entry(root) 
button = tk.Button(root, text="Click me!", command=saveConfig) 
e1.pack() 
button.pack() 
root.mainloop() 

、あなただけの輸入を変更する必要があります。 UbuntuでPython 2.7を使ってテストして作業しています。

+0

こんにちはRedFantom、ありがとうございました!それは素晴らしい仕事をした! :)あなたはまた、GUIのiniファイルのカウンタを表示する方法も今ですか? –

+0

あなたは大歓迎です! ;) 'Label'を作るとき' textvariable'オプションで 'Label'に結合された' tk.StringVar() 'を使うことができます。 'var = tk.StringVar()'、 'lbl = tk.Label(root、textvariable = var)'、 'var.set(str(number))'のようにします。 'Label'は' mainloop'で自動的に更新されます。 – RedFantom

+0

@MartinLedこれがあなたの質問に答えるなら、それを答えとして受け入れることができますか?ありがとうございました :) 。 – RedFantom

関連する問題