2017-02-07 26 views
1

私はPythonを初めて使い、テキサスインスツルメンツの電卓を備えた電卓を機能と機能のインスピレーションとして作ろうとしています。現在、ボタンのすべてのテキストを別のテキストセットに変更するシフトボタンを作成しようとしています。テストを簡単にするために、私はただ一つのボタンで作業しており、他はコメントアウトされています。私はプログラムを実行し、次のエラーメッセージが表示されました:トレースバック(最新の最後の呼び出し): ファイル "/Users/ryanflynn/shCalctest.py"、行18、 にtxt = root.StringVar() ファイル "/ライブラリ/フレームワーク/ Python.framework /バージョン/ 3.6/libに/ python3.6/Tkinterの/ のinit GETATTR 戻りGETATTRでの.py」、ライン2095、(self.tk、ATTR) はAttributeError: '_tkinter.tkapp'オブジェクトが属性を持っていない 'STRINGVAR'Tkinter Calculator(テキストボタンの変更)

をこれが私のコードです:

from tkinter import * 
import time 

root = Tk() 
root.title('Calculator') 

mode = 0 

display = Entry(root) 
display.grid(row = 1, columnspan = 6) 


def txtupdate(mode): 
    a = ([1,2,3,4,5,6,7,8,9,0],[A,B,C,D,E,F,G,H,I,J]) 
    txt.set(a[mode]) 
    return 

txt = tk.StringVar() 
one = Button(root, variabletext = txt[0], command = lambda : print(txt)) 
txt.set([1,2,3,4,5,6,7,8,9,0]) 
one.grid(row = 2, column = 0) 
'''two = Button(root, text = '2', command = lambda : print('2')) 
two.grid(row = 2, column = 1) 
three = Button(root, text = '3', command = lambda : print('3')) 
three.grid(row = 2, column = 2) 
four = Button(root, text = '4', command = lambda : print('4')) 
four.grid(row = 3, column = 0) 
five = Button(root, text = '5', command = lambda : print('5')) 
five.grid(row = 3, column = 1) 
six = Button(root, text = '6', command = lambda : print('6')) 
six.grid(row = 3, column = 2) 
seven = Button(root, text = '7', command = lambda : print('7')) 
seven.grid(row = 4, column = 0) 
eight = Button(root, text = '8', command = lambda : print('8')) 
eight.grid(row = 4, column = 1) 
nine = Button(root, text = '9', command = lambda : print('9')) 
nine.grid(row = 4, column = 2) 
zero = Button(root, text = '0', command = lambda : print('0')) 
zero.grid(row = 5, column = 1)''' 
shift = Button(root, text = 'sft', command = txtupdate(1)) 
shift.grid(row = 2, column = 1) 


root.mainloop() 

どんな助けもありがとう!

+0

次のエラーのコピーを渡してもらえますか?通常、システムファイル(あなたのケースのtkinterの '__init __。py'ファイル)にエラーが表示されるのは、通常、コード内の引数に問題があるためです。 –

+0

うまくいかない回答を選択してください。 –

答えて

1
  1. すべてをtkinterからインポートしました。tk.StringVarは不要です。
  2. variabletext = txt[0] - それはtextvariableであり、ここではインデックスは不要です。
  3. ** a = ([1,2,3,4,5,6,7,8,9,0],[A,B,C,D,E,F,G,H,I,J]) - 文字は変数として精査され、定義されていません。それらを['A','B','C','D','E','F','G','H','I','J']に置き換えることができます。

変更の2行:

txt = StringVar() 
one = Button(root, textvariable = txt, command = lambda : print(txt)) 
+0

これは非常に役に立ち、エラーはなくなりました。私は新しい問題を抱えています。私は、ここで尋ねられたり答えられた人には関係ないので、新しい投稿をしています。ありがとうございました! –

関連する問題