2016-03-20 13 views
1

Metin dosyası oluşturan bir komut dosyası oluşturmaya çalışıyorum ve bu metin dosyasının adı karşılık geliyor kullanıcı tarafından girilene. İşte benim kodudur:TypeError: desteklenmeyen işlenen türü (ler) s for +: 'StringVar' ve 'str' // Bir metin dosyası oluştur

from tkinter import* 

fenetre = Tk() 
def creation(): 
    open(f1 + '.txt', "w") 
Label1 = Label(fenetre, text = 'Nom de votre classe :') 
Label1.pack(side = LEFT, padx = 5, pady = 5) 
f1 = StringVar() 
Champ = Entry(fenetre, textvariable= f1, bg ='bisque', fg='maroon') 
Champ.focus_set() 
Champ.pack(side = LEFT, padx = 5, pady = 5) 
Bouton = Button(fenetre, text ='Valider', command = creation()) 
Bouton.pack(side = LEFT, padx = 5, pady = 5) 
fenetre.mainloop() 

Ama çalışmıyor ve aşağıdaki hatayı veriyor: Bir keresinde dosyası oluşturmak için başarılı

TypeError: unsupported operand type(s)s for +: 'StringVar' and 'str' 

, ama bir adı var vermedi.

cevap

1

Değeri kullanmak istediğinizde f1.get() numaralı telefonu aramanız gerekir. f1'un kendisi bir dize değil, bir dizeyi tutabilen bir nesnedir. Üzerinde get() yönteminin çağrılması, tuttuğu asıl dizeyi döndürür.

def creation(): 
    open(f1.get() + '.txt', "w") 
+0

Teşekkür ve ben başka sorunu çözdü bunu başlattığı, benim komut bir dosya oluşturdum çalışan bir sürü, ben sildim() Bouton sonra = Düğme (fenetre, text = 'Valider', komut = oluşturma()) –

İlgili konular