macOS下python Tkinter中Button无法更改背景颜色(background)解决方案

macOS下python Tkinter中Button无法更改背景颜色(background)解决方案

最近在用python+tkinter+socket写一款聊天室,发现在macOS系统下无法对tkinter中的Button进行背景颜色的更换。

bt_pic = Button(f, bg='#3C3F41', fg='#D636D2',  text="图片", font="Arial, 14", command=lambda: self.send(parent.socket, chat_name, et_input))
bt_pic.place(x=110, y=405, anchor=CENTER)

bt_file = Button(f, bg='#3C3F41', fg='#D636D2', text="文件", font="Arial, 14", command=lambda: self.send(parent.socket, chat_name, et_input))
bt_file.place(x=180, y=405, anchor=CENTER)

在这里插入图片描述
经了解到macOS下许多模块都存在这个问题,按钮的背景色只会是系统的默认颜色。因此需要用到另一个叫tkmacosx的模块。经过pip安装后即可使用。

pip install tkmacosx
pip3 install tkmacosx

然后在程序中import就OK

from tkmacosx import Button

此时需要注意,原先tkinter中的button不需要设置宽度,能够自适应button字体大小。但在tkmacosx中最好设置width属性,不然button大小会与原先的不一样。同样的如果使用tkmacosx设置了button,在换回tkinter中button的时候就要相应的去掉width设置或者重新设置width大小

导入tkmacosx后并设置width:

bt_pic = Button(f, bg='#3C3F41', fg='#D636D2', width=55, text="图片", font="Arial, 14", command=lambda: self.send(parent.socket, chat_name, et_input))
bt_pic.place(x=110, y=405, anchor=CENTER)

bt_file = Button(f, bg='#3C3F41', fg='#D636D2', width=55, text="文件", font="Arial, 14", command=lambda: self.send(parent.socket, chat_name, et_input))
bt_file.place(x=180, y=05, anchor=CENTER)

就能成功显示想要的背景色啦
在这里插入图片描述

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值