在 Tkinter 中向按钮添加图像

2023-12-05

我正在尝试将图像添加到按钮,但是当我尝试执行当前代码时遇到一些问题。它所显示的只是一张没有文字的图像。我也看不到按钮。有什么方法可以修复我当前的代码吗?

from tkinter import *
import tkinter as tk

root = tk.Tk()
root.geometry("960x600")

canvas = Canvas(root, width=500, height=500)
canvas.pack()

imagetest = PhotoImage(file="giftest.gif")
canvas.create_image(250, 250, image=imagetest)

button_qwer = Button(root, text="asdfasdf", image=imagetest)

root.mainloop()

你需要pack (or grid)窗口中的按钮,您可以这样做:

import tkinter as tk
from tkinter import PhotoImage

def print_hello():
    print('hello')

root = tk.Tk()
root.geometry("960x600")

imagetest = PhotoImage(file="giftest.gif")

button_qwer = tk.Button(root, text="asdfasdf", image=imagetest, command=print_hello)
button_qwer.pack()   # <-- don't forget to place the button in the window

root.mainloop()

你可以有文本和图像均显示在您的按钮上,使用compound选项,像这样:

button_qwer = tk.Button(root, image=imagetest, text="asdfasdf", compound="top", command=print_hello) 

compound选项有bottom, center, left, none, right, or top

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Tkinter 中向按钮添加图像 的相关文章

随机推荐

  • Android 服务无限期运行

    我注意到像 Skype 这样的应用程序使用的服务基本上是 24x7 运行 根本不会被杀死 您甚至无法使用任务杀手手动杀死它 您可以通过运行服务并杀死服务来杀死它们 这是如何实施的 我发现在 Android 2 3 中 我的服务在运行一段时间
  • 带有隐藏 UIView 的自动布局?

    我觉得这是一个相当常见的显示 隐藏范例UIViews 最经常UILabels 取决于业务逻辑 我的问题是 使用 AutoLayout 响应隐藏视图的最佳方法是什么 就好像它们的框架是 0x0 一样 以下是包含 1 3 个功能的动态列表的示例
  • vbscript 下载文件(绕过无效证书错误)

    dim xHttp Set xHttp createobject microsoft xmlhttp dim bStrm Set bStrm createobject Adodb Stream xHttp Open GET https ww
  • 从 R 中的 POSIXct 中提取 2 位数小时

    我想从a中提取小时POSIXctR 中的时间 但检索 2 位数答案 例如 test as POSIXct 2015 03 02 03 15 00 test 1 2015 01 02 03 15 00 GMT month testing 1
  • Java:调用超级方法,该方法调用被重写的方法

    public class SuperClass public void method1 System out println superclass method1 this method2 public void method2 Syste
  • 如何使用OpenCV2.0和Python2.6调整图像大小

    我想使用OpenCV2 0和Python2 6来显示调整大小的图像 我使用并采用了this示例 但不幸的是 此代码适用于 OpenCV2 1 似乎不适用于 2 0 这是我的代码 import os glob import cv ulpath
  • 如何在 jQuery 中使用 dataType 'text' 进行跨域 ajax?

    在我的 javascript 函数中 我称之为 ajax 它工作正常 但只有当我访问网页时firebird服务器 我的电脑上有相同的代码testing服务器 ajax 要求下载一些文件 但只有 firebird 服务器有其 ip 向我们的客
  • 在unix下同步四个shell脚本依次运行

    我有 4 个 shell 脚本来生成一个文件 假设是 param txt 该文件由另一个工具 informatica 使用 并且当该工具完成处理时 它会删除 param txt 这里的目的是所有四个脚本都可以在不同的时间调用 比如上午 12
  • 注意:PHP 中未初始化的字符串偏移量

    嗨 我有这个函数 它返回一个通知 注意 未初始化的字符串偏移量 function generaterandomkey length string characters 0123456789abcdef for p 0 p lt length
  • 如何创建右上角带有完成按钮的 UIKeyboard?

    我需要展示UIKeyboard右上角有 完成 按钮 请查看附图 任何帮助将不胜感激 这可能对你有帮助 请检查一下BS键盘控制
  • C# 自定义组合框排序

    是否可以在组合框中自定义排序 显示顺序 假设我在所有其他值之前想要一个特殊值 MasterValue 不要添加字符串 而是创建一个实现 IComparable 并重写 ToString 的类 将该类的实例添加到您的 ComboBox
  • 将 SMS api 与 woocommerce 集成,不发送消息

    我正在将 SMS API 与 WooCommerce 集成 以便每当在现场进行任何购买时都会向客户的手机发送自动订单更新 下面是我的代码 add action woocommerce payment complete custom proc
  • 如何使用宏将数字格式化为文件名中至少有 5 位数字?

    我正在开发一个宏 其中涉及生成文件名并将 Excel 工作表保存为具有该名称的 pdf 我能够生成目标文件夹名称 如下所示 user name Environ UserName file dir C Users user name Docu
  • 为什么 JSON.parse 会因空字符串而失败? [复制]

    这个问题在这里已经有答案了 为什么 JSON parse 产生错误 Uncaught SyntaxError Unexpected end of input 如果直接返回不是更符合逻辑吗null 编辑 这不是链接问题的重复 虽然最小有效 j
  • Perl 正则表达式:剪切和粘贴

    我正在尝试使用 perl 编辑文件 本质上是剪切和粘贴文件中的内容 但是 看来我错误地构建了正则表达式 我很乐意帮助解决它 替换命令shouldcut 剪切之后的内容export PATH PATH直到但是not包括 THIS IS LAS
  • R - 多个嵌套循环

    我正在尝试编写一个嵌套循环代码来模拟 101 行数据框中的 10 列数据 第一行数据已被指定为起始值 每列应该不同 因为我的矩阵 r 是从随机法线生成的 但是 每列中的结果值完全相同 为循环索引提供一些上下文 tmax 100 ncol p
  • 在 Windows 8 上使用 gem 安装 SASS

    我尝试在 Windows 8 x64 上安装 SASS 但即使防火墙已关闭 仍然出现错误 我发出这个命令 C Ruby200 x64 bin gt gem install sass or C Ruby200 x64 bin gt ruby
  • Bootstrap 滑动选项卡(不是选项卡内容)

    我正在开发一个项目并使用 Bootstrap Tabs 作为我的选项卡 用户可以创建新选项卡 因此问题是 超过N选项卡 其中N取决于浏览器的宽度 导致此行为 我浏览了一下 Bootstrap HTML 选项卡代码 选项卡是li里面的元素ul
  • 如何获取客户端的计算机名称

    我在另一篇文章中看到了这个问题 但解决方案无法正常工作 我用 System Net Dns GetHostEntry HttpContext Current Request ServerVariables Item REMOTE HOST
  • 在 Tkinter 中向按钮添加图像

    我正在尝试将图像添加到按钮 但是当我尝试执行当前代码时遇到一些问题 它所显示的只是一张没有文字的图像 我也看不到按钮 有什么方法可以修复我当前的代码吗 from tkinter import import tkinter as tk roo