0
変換のための2つのウィンドウを持つプログラムの設計に取り組んでいました。 1つはキロメートルからマイル、もう1つはキロメートルです。 GUIのメッセージボックスには2つの場所がありますが、kilomilesボックスのみが結果を表示します。私は別のものを試してみたが、私は、変換ボタンを私が入力したボックスに関係なくのために働くようにそれを取得する方法を見つけ出すことができていない。Python GUIプログラム、2回の変換
import tkinter
import tkinter.messagebox
class MyGUI:
def __init__(self):
# Create the main window widget.
self.main_window = tkinter.Tk()
# Create two frames
self.top_frame = tkinter.Frame(self.main_window)
self.bottom_frame = tkinter.Frame(self.main_window)
# Create three Label widgets for the
# top frame.
self.label1 = tkinter.Label(self.top_frame, \
text='Lets Have Fun')
self.label2 = tkinter.Label(self.top_frame, \
text='Calculate Distance')
self.prompt_label = tkinter.Label(self.top_frame, \
text='Enter how many kilometers you drove today:')
self.kilo_entry = tkinter.Entry(self.top_frame, \
width=10)
self.prompt_label2 = tkinter.Label(self.top_frame, \
text='Enter how many miles you drove today:')
self.miles_entry = tkinter.Entry(self.top_frame, \
width=10)
# Pack the labels that are in the top frame.
# Use the side='top', 'left' and 'bottom' arguments to stack them
# one on top of the other.
self.label1.pack(side='top')
self.label2.pack(side='top')
self.prompt_label.pack(side='left')
self.kilo_entry.pack(side='left')
self.prompt_label2.pack(side='left')
self.miles_entry.pack(side='left')
self.top_frame.pack()
self.bottom_frame.pack()
self.my_button = tkinter.Button(self.main_window, \
text='What if I dont know?', \
command=self.do_something)
self.calc_button = tkinter.Button(self.top_frame, \
text='Convert', \
command=self.convert)
self.quit_button = tkinter.Button(self.main_window, \
text='Quit', \
command=self.main_window.destroy)
self.my_button.pack()
self.quit_button.pack()
self.calc_button.pack()
tkinter.mainloop()
def do_something(self):
tkinter.messagebox.showinfo('Response', \
'Just enter your favorite number.')
miles = 0.00
miles == " "
def convert(self):
# Get the value entered by the user into the
# kilo_entry widget.
kilo = float(self.kilo_entry.get())
# Convert kilometers to miles.
miles = kilo * 0.6214
# Display the results in an info dialog box.
tkinter.messagebox.showinfo('Results', \
str(kilo) + ' kilometers is equal to ' + \
str(miles) + ' miles.')
def convert2(self):
if self.kilo_entry == " ":
convert2(self)
else:
convert(self)
tkinter.mainloop()
# Get the value entered by the user into the
# kilo_entry widget.
miles = float(self.miles_entry.get())
# Convert kilometers to miles.
kilo = (miles)/(0.6214)
# Display the results in an info dialog box.
tkinter.messagebox.showinfo('Results', \
str(miles) + ' miles is equal to ' + \
str(kilo) + ' kilo.')
my_gui = MyGUI()
をありがとうございました!
インデントを修正してください:あなたの
convert()
メソッドを実装する一つの方法は、以下のように、入力ボックスが空であり、そうでない場合は、その内容を変換する場合だけをチェックすることです。 –