2014-03-28 61 views
2

我創建了一個組合框在Python我的GUI應用程序,但在宣佈我的組合框當我初始化功能我已經收到此錯誤:的Python,Tkinter的:NameError:全局名稱「組合框」沒有定義

TypeError: 'Combobox' object is not callable

這裏是我使用此代碼:

class ProgramingPractice(Tk): 

    def __init__(self): 
     super(ProgramingPractice, self).__init__() 
     self.variableCombo_value = StringVar() 
     self.variableCombo = ttk.Combobox() 

    def questionVariables(self): 

     self.variableCombo_value = StringVar() 
     self.variableCombo(self.formSize, textvariable = self.variableCombo, state = 'readonly') 
     self.variableCombo['values'] = ('Month', 'Year', 'Age', 'Day') 
     self.variableCombo.pack() 

我試圖對這個問題不同的解決方案,但我要麼得到一個Attibute錯誤或名稱錯誤。

有沒有人知道這個問題的解決方案?

這是我能夠做到的代碼,同時還收到錯誤最小:

import sys 
from tkinter import * 
from tkinter import ttk 


class ProgramingPractice(Tk): 

    def __init__(self): 
     super(ProgramingPractice, self).__init__() 
     self.formSize() 
     self.variableCombo_value = StringVar() 
     self.variableCombo = ttk.Combobox() 


    def formSize(self): 
     self.geometry("700x450+200+200") # Sets the size of the gui 

    def questionVariables(self): 

     self.variableCombo_value = StringVar() 
     self.variableCombo.configure(self.formSize, textvariable = self.variableCombo_value, state = 'readonly') 
     self.variableCombo['values'] = ('Month', 'Year', 'Age', 'Day') 
     self.variableCombo.pack() 


pp = ProgramingPractice() 
pp.questionVariables() 
+0

到底是什麼'ttk',你怎麼導入呢?另外,Python 2或3? –

+0

ttk是tkinter的主題部件集,從tkinter導入ttk – Tumbler

+0

你不會在'__init__'中得到錯誤,但是在'questionVariables'的第二行。試試'self.variableCombo.configure(stuff)'。另外,'textvariable'參數可能應該是'StringVar',而不是組合框本身... –

回答

2

嘗試

textvariable = self.variableCombo_value 
相關問題