2016-06-18 70 views
0

我想通過使用Tkinter和xlrd在Tkinter上創建下拉菜單。 下拉菜單的值應來自Excel的列表。到目前爲止,我只有這樣:使用Excel中的數據在Tkinter上創建下拉菜單

i = 0 
while i < 96: 
    i = i+1 
    m=sheet.cell_value(i,1) 
    print(m) 
mbuttonMaterial = Menubutton(tkFenster, text='Material')  
picks = Menu(mbuttonMaterial)    
mbuttonMaterial.config(menu=picks) 
picks.add_command(label=sheet.cell_value(8,1)+ '/'+sheet.cell_value(8,2),command = ChooseMaterial) 
mbuttonMaterial.pack() 
mbuttonMaterial.config(bg='white', bd=4, relief=RAISED) 
mbuttonMaterial.place(x=54,y=200, width=100, height = 50) 

我想用m作爲變量而不是值8.但只有整數是允許的。我必須使用openpyxl嗎?你有什麼建議嗎?也許還有另一種方式。這是我第一次使用Python。

+0

您應該簡化您的問題,以便它引用特定的任務或代碼段。 –

+0

我有不同的材料名稱,列在Excel中。這些名稱將顯示在下拉菜單中。 –

+0

你的觀點是?您應該將代碼分成兩塊:一塊獲取材料,另一塊使用菜單中的這些材料。 –

回答

0

假設您可以從您的excel文檔中檢索這些項目,您可以嘗試將它們添加到varType的字典中。這裏有一個來自tutorialspoint的修改示例:

from tkinter import Tk, Menubutton, Menu, IntVar, RAISED 

top = Tk() 

mb= Menubutton (top, text="condiments", relief=RAISED) 
mb.grid() 
mb.menu = Menu (mb, tearoff = 0) 
mb["menu"] = mb.menu 

menuItemVars = { "mayoVar": "mayo", "ketchVar": "ketchup", "mustardVar": "mustard" } 

for key, value in menuItemVars.items(): 
    print(key, value) 
    key = IntVar() 
    mb.menu.add_checkbutton(label=value, variable=key) 


mb.pack() 
top.mainloop()