2017-02-06 3 views
-1

スピンボックスにディレクトリ内のファイル名(.pngイメージ)を入力するコードを記述しようとしています。次に、スピンボックス内の1つの項目を選択すると、画像が表示されます。コマンド機能でget値を使用するTkinterスピンボックス

photo = PhotoImage(file=XS_Spinbox.get()) 
AttributeError: 'NoneType' object has no attribute 'get' 

はハードコーディングファイル名が動作することに留意し...

photo = PhotoImage(file='Arm_DEM_192_XSplot.png') 

:私はトラブルを取得

生じる誤差があるとスピンボックスから値を渡すを持っています。

XS_Spinbox = Spinbox(myframe2, values = ([x for x in os.listdir(os.curdir) if os.path.splitext(x)[1] in ('.png')]), command=update_photoImage).pack() 

def update_photoImage(): 
#print XS_spinBox.get() 
#photo = PhotoImage(file=XS_spinBox.get()) 
photo = PhotoImage(file=XS_Spinbox.get()) 
label.image = photo 
return 
+0

私はこの質問はTkinterのウィジェットスピンボックスは、コマンド関数に値を渡す方法についての詳細だと思いますか? –

+0

DEF update_photoImage(): プリントXS_Spinbox.get() 写真=光画像(ファイル= XS_Spinbox.get()) 写真= photo.subsample(2,2) #LABEL =ラベル(myframe2、画像=写真) print '画像が更新されました...' 返信これはspinbox.getデータを使用して画像を正常に更新します –

答えて

0

pack()Noneを返し、あなたはXS_Spinboxに割り当てます。次の2つの手順で行う必要があり

XS_Spinbox = Spinbox(...) 

XS_Spinbox.pack() 
+0

2段階の割り当てとして調整しましたが、Spinboxデータが更新されていますdef update_photoImage(): print XS_Spinbox.get() photo = PhotoImage(file = XS_Spinbox.get()) photo = photo.subsample(2,2) label =ラベル(myframe2、image = photo) label.image = photo 返信ラベル内の画像がどのように更新されているのだろうか? –

+0

コンソールで実行しましたか?おそらくエラーメッセージが表示されます。完全パスを持つには、ファイル名に 'os.curdir'を追加する必要があります。 – furas

+0

あなたは 'label [" image "] = photo'または' label.config(image = photo) 'を実行する必要があります – furas

関連する問題