0

そのため、この GUI プログラムを (tkinter を使用して) コーディングしており、同じ関数で 3 つの Entrybox を使用しています。それらの値をメイン関数で使用したいのですが、値をある種のグローバル変数に取得したり、別の関数で使用できるようにするにはどうすればよいですか?

def options():

    options_root = Tk()

    textFrame = Frame(options_root)
    textFrame.grid()

    widthlabel = Label(textFrame, text="w:", justify=LEFT)
    widthlabel.grid(column="0", row="0")
    widthinput = Entry(textFrame)
    widthinput.grid(column="1", row="0")

    heightlabel = Label(textFrame, text="h:", justify=LEFT)
    heightlabel.grid(column="0", row="1")
    heightinput = Entry(textFrame)
    heightinput.grid(column="1", row="1")

    mlabel = Label(textFrame, text="m:", justify=LEFT)
    mlabel.grid(column="0", row="2")
    minput = Entry(textFrame)
    minput.grid(column="1", row="2")

    width = widthinput.get()
    height = heightinput.get()
    m = minput.get()


    start_game_button = Button(options_root, text="Start", justify=LEFT, command=lambda:tabort(options_root))
    start_game_button.grid(column="0",row="3")
    exit_button = Button(options_root, text = "Exit", justify=LEFT, command=exit)
    exit_button.grid(column="1", row="3")

    mainloop()

def main():

    options()

    w = widthinput.get()
    h = heightinput.get()
    m = minput.get()

main()
4

1 に答える 1

3

ウィジェットへの参照を保持してから、get()メソッドを使用します。アプリケーションをクラスとして設計すると、これははるかに簡単になります。

import tkinter as tk

class SampleApp(tk.Tk):
    def __init__(self, ...):
        ...
        self.width_entry = tk.Entry(...)
        self.height_entry = tk.Entry(...)
        self.minput_entry = tk.Entry(...)
        ...
    def main(...):
        w = self.width_entry.get()
        h = self.height_entry.get()
        m = self.input_entry.get()
        ...

...
app = SampleApp()
app.mainloop()
于 2012-05-07T11:04:05.863 に答える