python - 如何在 Tkinter 的动态大小按钮中填充图像
问题描述
这是我的第一篇文章,所以我希望我没有做错任何事情。
客观的:
我的目标是制作一个有 4 个按钮的菜单。此框架应仅显示这 4 个按钮。所有按钮都必须适合动态框架。
这是主程序:
class Tab_View(ttk.Frame):
def __init__(self, parent, *args, **kwargs):
self.frame_ini = tk.Frame(self.parent, bg=bg_1)
self.frame_ini.place(relwidth=1, relheight=1)
self.btn1= tk.Button(self.frame_ini, image=self.image_button1, cursor="hand2")
self.btn2= tk.Button(self.frame_ini, image=self.image_button2, cursor="hand2")
self.btn3= tk.Button(self.frame_ini, image=self.image_button3, cursor="hand2")
self.btn4= tk.Button(self.frame_ini, image=self.image_button4, cursor="hand2")
# Putting all the buttons in the frame
self.btn1.pack(expand = True, fill='both')
self.btn2.pack(expand = True, fill='both')
self.btn3.pack(expand = True, fill='both')
self.btn4.pack(expand = True, fill='both')
if __name__ == '__main__':
root = tk.Tk()
root.minsize(900,400)
frame(root)
root.mainloop()
这显示了框架中的所有按钮,但问题在于附加到按钮的图像似乎比按钮本身小。
我试过了,resize
但是当我最大化框架时,这些图片没有更新,所以它们不适合。
我期待这个:(https://i.gyazo.com/c52fbda518594ceec0ec1cebe0baedd7.png)
但图像必须根据屏幕尺寸改变尺寸。你能告诉我一个更好的解决方案吗?
谢谢你们!我希望我已经很好地表达了自己。
解决方案
据我所知,仅使用 Tkinter 是无法做到这一点的。要么您必须编写一个自定义图像按钮,该按钮使用可以缩放图像的图像库(如 Pillow),要么您可以尝试找到一个提供可缩放图像按钮的 GUI 库。
推荐阅读
- javascript - 在 JavaScript Node-RED 函数节点中重命名文件
- android-tv - android tv 中的默认对焦按钮
- javascript - 如何将 JSON 数据转换为循环对象值?
- azure - 如何通过代码配置 Azure Function 身份验证?
- arduino - 如何修复“因中断而中断的 2 个微控制器之间的 I2C 通信”
- python - python 正则表达式也用换行符查找值
- jquery - 未捕获的 TypeError - jQuery fadeOut 不是函数
- c++ - 移动到左值引用时,std::move 会导致切片吗?
- sql - 如何处理包含长期支持 (LTS) 软件版本中的数据库迁移的补丁
- .net - dotnet ef 数据库更新 - 数据库已存在