2016-09-01 15 views
0

私はTkinterの(Pyhton)で開始/一時停止ボタンをプログラムしようとしていますが、次のコードは動作しません。更新画像

def startpause(): 
if startpause_button.cget('image')=='start_image': 
    startpause_button.config(image=pause_image) 
else: 
    startpause_button.config(image=start_image) 
return 

start_image=ImageTk.PhotoImage(file='start.png') 
pause_image=ImageTk.PhotoImage(file='pause.png') 

startpause_button=ttk.Button(frame,image=start_image,command = startpause) 

私は理解しては問題は程度でありますcget(return( 'pyimage3'))と返すものは何かをチェックする値として入れるべきか分からない( "( 'pyimage3')"は機能しません)。

この問題についてご意見はありますか?

ありがとうございます。

+0

文字列「start_image」ではなく、「start_image」と比較してみてください。 –

答えて

0

startpause_button.cget('image')'start_image'は、2つの異なるものです。.cget('image')は、リスト内の画像の名前を返します。 ('pyimage1',)'pyimage1'pyimage1は、2つの異なるものですので、これはこれは仕事をし、私はそれをテストしてみた

import tkinter.ttk 
from tkinter import Tk, PhotoImage 

def startpause(): 
    global start_image 
    if str(startpause_button.cget('image')[0])==str(start_image): 
     startpause_button.config(image=pause_image) 
    else: 
     startpause_button.config(image=start_image) 
    #return # i dont think you need this 

global start_image 
start_image=PhotoImage(file='start.gif') 
pause_image=PhotoImage(file='pause.gif') 

startpause_button=tkinter.ttk.Button(frame,image=start_image,command = startpause) 

あなたは[0]と、リストからそれを取ると、両方の変数がstr()と文字列であることを確認する必要があり、それらを比較することを意味しますこれがあなたを助けることを願って! :)