2016-09-27 21 views
1

私は最初の「大きな」Pythonプロジェクト(2番目のGUI)を作成しています。単純なSQLiteデータベースマネージャです。現在のところ、これは次のようになっています... Current state of database manager. 上部には、表示されているように、切り替えるテーブルのボタンとドロップダウンがあります。Python 3:Tkinter OptionMenu変更とパスの変数を検出

私がやりたいことは、ボタンを削除して、オーデナリーラベル(これは簡単です)に置き換えてから、OptionMenuで別のものが自動的に選択されるようにテーブルを変更させることです。

これは私が変更のために持っているものです。

def change(self, root, c, tableToChangeTo, table, list_columns): 
    table = tableToChangeTo.get() 
    cursor = c.execute('select Rowid, * from ' + table) 
    list_columns = [description[0] for description in cursor.description] 

    self.clear() 
    self.table(root, c, table, list_columns) 
    self.addGui(root, c, table, list_columns) 
    self.editGui(root, c, table, list_columns) 
    self.delGui(root, c, table, list_columns) 
    self.changeGui(root, c, table, list_columns) 


def changeGui(self, root, c, table, list_columns): 
    gridRow = self.rowTotal 
    self.changeButton = Button(root, text="Change Table", command= lambda: self.change(root, c, var, table, list_columns)) 
    self.changeButton.grid(row = 0 , column = 0) 

    var = StringVar(root) 
    var.set(table) 

    options = {""} 
    global tableList 
    ta = tableList 

    for t in ta: 
     options.add(t) 

    self.changeOption = OptionMenu(root, var, *options) 
    self.changeOption.grid(row = 0, column = 1) 

これを短く甘くするために、別のテーブルを選択すると自動的に変更方法が実行されます。大きな問題は、メソッドをイベントにする方法と、同時に変数を渡すことができる方法を見つけることができないことです。

ご協力いただきありがとうございます。何か必要な場合は、お知らせください。

答えて

0

私と同じ問題を抱えている人は、私はこのコード行を使用して私の仕事を得ることができました。

self.changeOption = OptionMenu(root, var, *options, command= lambda event: self.change(event,root, c, var, table, list_columns)) 
関連する問題