2017-11-09 18 views
1
from tkinter import * 
from tkinter import ttk 
from random import * 

class Application(Frame): 
    def __init__(self, master): 
     ttk.Frame.__init__(self, master) 
     self.grid() 
     self.c = randint(1, 50) 
     self.o = randint(60, 100) 
     varClose.set(self.c) 
     varOpen.set(self.o) 
     Close = varClose.get() 
     Open = varOpen.get() 
     self.Mylist = ttk.Combobox(width=10) 
     self.Mylist['values'] = (Close, Open) 
     self.Mylist.grid(row=1, column=6, sticky=W) 


root = Tk() 
root.geometry('420x220') 
varClose = IntVar(root, value='Close') 
varOpen = IntVar(root, value='Open') 
app = Application(root) 

root.mainloop() 

ドロップダウンメニューの表示方法はわかりません。代わりに私は値を取得し、デフォルトのフィールドは空です。私はランデントから受け取った値に関連した方法でメニューに「閉じる」と「開く」を持つことができますか? 他の操作の値をさらに使用したいです。2つの変数を持つTkinter Combobx

答えて

0

あなたはタプルとして保存できます。

from tkinter import * 
from tkinter import ttk 
from random import * 

class Application(Frame): 
    def __init__(self, master): 
     ttk.Frame.__init__(self, master) 
     self.grid() 
     self.c = randint(1, 50) 
     self.o = randint(60, 100) 
     varClose[0].set(self.c) 
     varOpen[0].set(self.o) 
     Close = varClose[1] 
     Open = varOpen[1] 
     self.Mylist = ttk.Combobox(width=10) 
     self.Mylist['values'] = (Close, Open) 
     self.Mylist.grid(row=1, column=6, sticky=W) 


root = Tk() 
root.geometry('420x220') 
varClose = (IntVar(root), "Close") 
varOpen = (IntVar(root), "Open") 
app = Application(root) 

root.mainloop() 

これはVarCloseVarOpenは基本的に2つの値を含む変数になることを意味し、最初はあなたが実行randint()の値に設定されているIntVar()文字列は"Close"または"Open"のいずれかです。

このようにすると、両方の値(文字列と乱数)が同じ変数に格納されているため、互いにアクセスしやすい関係になります。


参考のために、あなたもリストでこれを行うことができます:

from tkinter import * 
from tkinter import ttk 
from random import * 

class Application(Frame): 
    def __init__(self, master): 
     ttk.Frame.__init__(self, master) 
     self.grid() 
     self.c = randint(1, 50) 
     self.o = randint(60, 100) 
     varClose[0].set(self.c) 
     varOpen[0].set(self.o) 
     Close = varClose[1] 
     Open = varOpen[1] 
     self.Mylist = ttk.Combobox(width=10) 
     self.Mylist['values'] = (Close, Open) 
     self.Mylist.grid(row=1, column=6, sticky=W) 


root = Tk() 
root.geometry('420x220') 
varClose = [IntVar(root), "Close"] 
varOpen = [IntVar(root), "Open"] 
app = Application(root) 

root.mainloop() 
+0

もう一つを。 GUIを起動すると、フィールドのデフォルト値は空ですが、クローズとオープンを選択できます。最初のデフォルト値を「閉じる」または「開く」にするにはどうすればよいですか? – user8491020

+0

これは別の質問です。別の質問を作成してください –

関連する問題