私はTkinterモジュールを使ってPythonでGUIを作成しようとしていますが、その一部には2つのラジオボックスのオプションを与え、どちらを選択するかが含まれます。彼らはチェックボックスに応じて、別の結果を返す異なる関数を実行します。結果はウィンドウクラス外で使用したいのです。しかし、クラスの中からクラスの外に値を送る方法はわかりません。私はそれがかなりシンプルだと確信していますが、私の人生はそれを解決することができません。Tkinterのラジオボックスから値を取得する - Python
私の現在のコードは次のとおり
class BatchIndiv():
def __init__(self, master):
self.master=master
self.startwindow()
self.b=0
def startwindow(self):
self.var1 = IntVar()
self.textvar = StringVar()
self.Label1=Label(self.master, text="Batch or indivdual import?")
self.Label1.grid(row=0, column=0)
self.Label2=Label(self.master, textvariable=self.textvar)
self.Label2.grid(row=2, column=0)
self.rb1 = Radiobutton(self.master, text="Batch", variable=self.var1,
value=1, command=self.cb1select)
self.rb1.grid(row=1, column=0, sticky=W)
self.rb2 = Radiobutton(self.master, text="Individual", variable=self.var1,
value=2, command=self.cb1select)
self.rb2.grid(row=1, column=1, sticky=W)
self.Button1=Button(self.master, text="ok", command=self.ButtonClick)
self.Button1.grid(row=1, column=2)
def ButtonClick(self):
if (self.var1.get())==1:
b=BatchImport()
return b
self.master.quit()
self.master.destroy()
elif (self.var1.get())==2:
b=IndivImport()
return b
self.master.quit()
self.master.destroy()
else: pass
def cb1select(self):
return self.var1.get()
#End of class definition.
#Code:
root=Tk()
window=BatchIndiv(root)
b=BatchIndiv.ButtonClick.b
root.mainloop()
....
)は、それらがちょうど私がButtonClick(内部変数bに割り当てた整数値を返す、ブラックボックスとしてBatchImportとIndivImport機能を扱います。私はroot.mainloop()の下で(つまりどこに....あるのか)いくつかのことをするにはその価値が必要ですが、それをどうやって取得するのか分かりません。 Tkinterは本当にとても刺激的です。特に、誰もがさまざまな方法を使ってオンライン文書が決して同じではないように、さまざまな方法で書かれたものを試してみると、もっと素敵なエラーメッセージが表示されます。
何かすべてのヘルプは高く評価されます。
PS - ボタンを押したときにウィンドウを閉じることができますが、値bをコードの残りの部分に送り返して、完全にPythonを終了させるだけではありませんか?あなたが見ることができるように、私は.quit()と.destroy()を使ってみましたが、運が無かった。
ええ、それはまさに私がやったことです。ありがとう。 –