How to have image + text in one button in Tkinter

2020-02-11 01:50发布

问题:

I´m trying to create a button, which will include an image aligned to the left and text aligned to the right. I just want to change text by parameter "text", not by modifying whole image. Is this possible somehow?

Here´s a simple example, what I mean.

http://img651.imageshack.us/img651/3776/previewrv.png

Hope I explained it well

Thank you

回答1:

Look at the compound option to the label. It lets you specify the relationship of the label to the text (top, bottom, left, right, none).

For example:

import Tkinter as tk

class View(tk.Frame):
    def __init__(self, *args, **kwargs):
        tk.Frame.__init__(self, *args, **kwargs)
        self.image = tk.PhotoImage(file="somefile.gif")
        b = tk.Button(self, text="Hello, world", image=self.image, compound="left")
        b.pack(side="top")

if __name__ == "__main__":
    root = tk.Tk()
    view = View(root)
    view.pack(side="top", fill="both", expand=True)
    root.mainloop()