一、问题出现:
当我们使用python编写跨平台时有多种GUI ,
当使用tkinter时,新建按钮时,有概率出现 只看到按钮,却看不到按钮上的文字的现象。
btn1 = Button(root,text='关闭',bg="green", fg="blue",command=root.destroy)
btn1.pack()
如下图:

二、问题分析
同样的脚本而windows下运行是正常的,按钮上的文字可见。
网上查了下,有的方法解决是使用ttk,但ttk使用后的按钮无法修改按钮属性,并且按钮圆角处有阴影。
其实这个问题是由于版本不匹配造成的,您可以查看下您当前tkinter的版本,命令如下:
print("tkinter版本号: ", TkVersion)
print("python版本号: ", sys.version)
我这边显示 python3.9 、tkinter版本为8.5
而我mac 系统默认设置python3.8.10版本
解决问题的关键是升级tkinter版本为8.6
三、解决方法:
打开mac终端-->brew install tcl-tk
打开vscode 选择python版本
crtl+alt+P 打开命令窗口-->输入命令:python:select Interpreter -->选择python3.8.10
这里再运行
print("tkinter版本号: ", TkVersion)
print("python版本号: ", sys.version)
显示:
python3.8.10 tkinter版本为8.6
运行按钮脚本
btn1 = Button(root,text='关闭',bg="green", fg="blue",command=root.destroy)
btn1.pack()
按钮上的文字出现了!!!,如下图

四、总结
当我们在mac上使用python软件时,经常会遇到到一些软件版本切换问题,有时因为是mac系统的权限问题,导致无法切换,最典型的就是把系统默认的python2.7切换掉后,就会导致系统原来一些软件报错。这时mac系统默认的python2.7除了用brew升级外,最好不要去动。我们要做的是安装python3.8版本,然后让其它软件配置到python3.8版本上来,设置系统python3默认为python3.8 这个只要在python官网上下载python3.8的dmg软件安装就可以实现系统默认python3为python3.8。为什么要安装python3.8不安装python3.9呢,主要是因为我发现目前2022.4.22,很多软件还不支持python3.9.目录亚马逊云服务器默认也是只支持到python3.8,所以并不是最新的就是最好的,也得等软件生态跟上来后再用可以减少麻烦。
我也是积累了不少教训,希望有帮到您。

本文介绍了在Mac上使用Python tkinter时遇到按钮文字不显示的问题及其原因分析。问题由Python版本和tkinter版本不匹配引起,通过升级tkinter到8.6版本并切换Python解释器为3.8.10来解决。文章提供了详细的操作步骤,并强调了在mac系统中处理Python版本切换的注意事项。
583

被折叠的 条评论
为什么被折叠?



