あるケミストの独り言(winchemwinの日記)

ケミスト(化学者)の視点で、面白そうな情報(シミュレーション関係など)を発信

分子軌道情報(HOMO/LUMO)自動算出アプリ(CustumTkinter) その2

 前回に引き続きCustumTkinterを利用した軌道情報の自動計算アプリの紹介です。
今回は処理関数の設定コードの紹介です。

# Smiles file select by filedialog 
def data_import(self):
    type=[('smi file','*.smi'), ('text file', '*.txt')]
    file=filedialog.askopenfilename(filetypes=type)
    filename_sv.set(file)
    global fname_smi
    fname_smi=filename_sv.get()

    return fname_smi

# Display 'Calculation start'
def start_calc_button(self):
    Labelex_1=ctk.CTkLabel(master=root, text='Calculation was started',font=("Times",12))
    Labelex_1.place(x=50, y=370)
    
    root.after(100, calc_run)

 まずはデータ読み込み用の関数 「data_import」を設定です。データは化学構造としてSMILES形式のものが列記されたものを想定しているので、ファイルの拡張子は'smi' または’txt'としています。指定したファイルの内容を'filename_sv’として読み込んだ上で、中身のデータを後の計算用に変数fname_smiに設定しています。
 次は計算が開始された時のスタート表示用の処理関数'start_calc_button'です。計算をスタートさせる時はCustumTkinterのButton ウィジェットで行うのですが、ボタンを押せて計算がスタートしているかどうかたまに不安になることがあるので、計算がスタートしたことを表示させる様にしてみました。tkinterのafterの機能を使うことで、計算開始のスタート表示の100msec後に実際の計算の処理関数(calc_run)がスタートするようにしています。

 今回の紹介はここまでです。次回は量子化学計算用の処理関数について紹介したいと思います。