2017-08-18 5 views
-1

tkinterボタンを使ったものの計算方法は不思議でした。私は秒から時:分:秒を計算する簡単なプログラムを作っています。ユーザーは、秒のボックスにある入力ウィジェットを使用して整数を入力し、計算を押すと変換されたタイムラインで結果を取得します。私はそれを計算する方法を混乱させる。私はあなたが.getを介して整数を取得することを知っていますが、私はそれを行い、h:m:s形式で計算する方法に固執しています。これはこれまでの私のコードです。tkinterウィジェットを使ったものの取得と計算

import tkinter 
from tkinter import * 




class TimeConverterUI(): 


    def __init__(self): 

     self.root_window = Tk() 
     self.root_window.geometry('400x150') 
     self.root_window.title('Seconds Converter') 
     self.text() 
     self.calculate_button() 
     self.quit_button() 
     self.root_window.wait_window() 


    def text(self): 

     row_label = tkinter.Label(
       master = self.root_window, text = 'Seconds: ') 

     row_label.grid(row = 0, column = 0, columnspan=2, padx=10, pady=10, 
          sticky = tkinter.W) 

     secondsEntry = Entry(master = self.root_window) 
     secondsEntry.grid(row = 0, column = 1) 

     row_label = tkinter.Label(
       master = self.root_window, text = 'Converted Time(H:M:S): ').grid(row=1) 

    def calculate_button(self): 

     quit = Button(self.root_window, text = "Calculate", command = self.calculate) 
     quit.grid(row = 3, column = 0, columnspan = 3, pady=20, 
        sticky = tkinter.W) 

    def calculate(self): 

     pass 

    def quit_button(self): 

     quit = Button(self.root_window, text = "Quit", command = self.quit) 
     quit.grid(row = 3, column = 3, columnspan = 3, pady=20, 
        sticky = tkinter.E) 

    def quit(self) -> bool: 

     self.root_window.destroy() 
     return True 





if __name__ == '__main__': 

    convert=TimeConverterUI() 
+0

と「結果を計算する」は、TkInterウィジェットにはまったく関係しません。これは数学です。 – ForceBru

+0

私は知っていますが、どのように私はそれを計算するためにget()を得るだろうか? – Accelerate

答えて

0

まずあなたは、これがNoneTypeを返しますので、後でrow_labelを使用する場合は2行に以下のコードを破ります。最初に定義し、ボタンのように.gridを使用する必要があります。

row_label = tkinter.Label(
       master = self.root_window, text = 'Converted Time(H:M:S): ').grid(row=1) 

これで、別のラベルを作成して結果を表示することができます。 calculate機能で使用できるように、その名前の前にself.を置くことを忘れないでください。同じ理由でsecondsEntryself.secondsEntryに変更してください。
これで、その関数でint(self.secondsEntry.get())を使用して、必要な計算を行います。
結果を.configure(text=str(result))

関連する問題