如何在 Tkinter 中的一个按钮中包含图像+文本

Posted

技术标签:

【中文标题】如何在 Tkinter 中的一个按钮中包含图像+文本【英文标题】:How to have image + text in one button in Tkinter 【发布时间】:2013-02-07 04:21:45 【问题描述】:

我正在尝试创建一个按钮,该按钮将包括一个左对齐的图像和一个右对齐的文本。我只想通过参数“文本”更改文本,而不是通过修改整个图像。这有可能吗?

这是一个简单的例子,我的意思。

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

希望我解释清楚

谢谢

【问题讨论】:

图片是死链接:( 【参考方案1】:

查看标签的compound 选项。它允许您指定标签与文本的关系(上、下、左、右、无)。

例如:

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()

【讨论】:

第一个答案也不错:)。现在它做了我想要的。非常感谢! 我不明白为什么当他要求Button 时你给了他Label。我不是在反驳你,我只是想了解一下两者之间的关系。 @Robᵩ:这只是一个疏忽。我更新了我的答案以创建一个按钮而不是一个标签。感谢您指出不一致之处。

以上是关于如何在 Tkinter 中的一个按钮中包含图像+文本的主要内容,如果未能解决你的问题,请参考以下文章

如何在项目中包含图像过滤器插件

Python3 tkinter初级

如何将代码模块中包含的VBA代码放在表单模块中

如何在邮件组件中包含 Laravel 刀片降价?

如何在RouterLink中包含一个按钮,以便在按钮单击时不会发生导航

如何在 json 中包含图像文件? [复制]