2

私は tkinter に PhotoImage を呼び出しましたal_p4が、画像のファイルパスを印刷できるようにしたいと考えています。誰でも助けることができます。これが私のコードです:

al_p4 = Image.open("Media/DVD/image.jpg").resize((100, 150), Image.ANTIALIAS)
al_p4 = ImageTk.PhotoImage(al_p4)

前もって感謝します;)

4

2 に答える 2

1

私はまだあなたの言いたいことを正確に解釈するのに苦労しているので、印刷の仕方に関する 4 つの異なる回答を以下に示します。

単に印刷する必要があり、パスが常に一定である場合は、次を使用します。

print("Media/DVD/image.jpg")

何かを印刷する必要があり、パスが異なる場合は、次を試してください。

filepath = "Media/DVD/image.jpg"
al_p4 = Image.open(filepath).resize((100, 150), Image.ANTIALIAS)
al_p4 = ImageTk.PhotoImage(al_p4)
print(filepath)

何かをウィジェットに出力する必要がある場合は、使用するウィジェットの種類によって異なります。ファイル パスのような小さなものには、おそらくラベルが適しています。詳細については、ラベル ウィジェットに関するeffbotのドキュメントを参照してください。

すべての print ステートメントをウィジェットにリダイレクトする場合 (GUI の設計方法によっては便利です)、stdout をリダイレクトするクラスを作成します。テキスト ウィジェットの例を次に示します。

import sys
import Tkinter

def nothing():
    print("Nothing")

class Application(Tkinter.Frame):
    def __init__(self, master = None):
        Tkinter.Frame.__init__(self, master)

        self.button = Tkinter.Button(text = "Button 1", command = nothing)
        self.button.pack()

        class StdoutRedirector(Tkinter.Text):
            def __init__(self):
                Tkinter.Text.__init__(self)
             def write(self, message):
                 printout.insert(Tkinter.END, message)
        printout = StdoutRedirector()
        printout.pack()
        sys.stdout = printout

root = Tkinter.Tk()
app = Application(root)
app.mainloop()
于 2014-09-03T01:26:19.757 に答える