2014-09-22 77 views
0

我正在嘗試創建一個能夠刪除帳戶的數據庫管理系統。我可以通過下拉菜單來顯示當前的用戶列表,但我不明白如何讓它顯示新的用戶列表。下拉菜單的代碼如下:獲取下拉菜單以基於變量進行更新

import tkinter 
from tkinter import * 

tkwindow = Tk() 
tkwindow.title 
users = ['user1','user2','user3'] 

def callback(*args): 
    name = var.get() 
    print ('%s' % name) 
    users.remove(name) 
    print (users) 
    option.setitems(*users) 

var = StringVar(tkwindow) 
var.trace("w", callback) 
option = OptionMenu(tkwindow, var, *users) 
option.pack() 

在此先感謝。

回答

0

嘗試使用OptionMenu的菜單選項。例如,如果您獲得name字符串的索引,則可以使用下面的代碼從OptionMenu中刪除該索引。

def callback(*args): 
    name = var.get() 
    print ('%s' % name) 
    users.remove(name) 
    print (users) 
    menu = option['menu'] 
    menu.delete(menu.index(name)) 
+0

是的,這是非常有效的。謝謝! – Purple 2014-09-23 09:14:38

+0

更改代碼以從文本文件導入用戶時遇到問題。如果您在下拉菜單中選擇第二個帳戶選項,則不會刪除。例如,如果用戶導入[1,2,3]並嘗試刪除2,則會刪除3,並在菜單中仍顯示2。 – Purple 2014-09-23 09:39:21