tkinter的按钮文本在莫哈韦沙漠中不起作用

Tig*_*ger 17 python tkinter python-3.x macos-mojave

这是一个非常简单的程序.

import tkinter
tkinter.Button(None, text='button').pack()
tkinter.mainloop()
Run Code Online (Sandbox Code Playgroud)

我希望这个节目能让我看到如下图.
工作得很好

但它实际上显示了下面的图片.
不行

当它在GUI上调整大小时似乎运行良好.

在High Sierra没有出现这个问题.

我的环境如下:

  • macOS Mojave 10.14
  • Python 3.7.0

你能告诉我一下吗?

我在这里发现了同样的问题.

jam*_*ell 8

我有同样的错误,为了修复它,我必须将按钮更改为ttk.Button并设置样式。例如,添加以下内容以进行导入:

try: from tkinter import ttk # python 3
except: import ttk # python 2.7
Run Code Online (Sandbox Code Playgroud)

然后在根初始化之后:

    style = ttk.Style()
    style.map("C.TButton",
              foreground=[('pressed', 'red'), ('active', 'blue')],
              background=[('pressed', '!disabled', 'black'),
                          ('active', 'white')]
              )
Run Code Online (Sandbox Code Playgroud)

然后当你实例化按钮时:

self.button = ttk.Button(self, text="my cooool button",
                                 command=self.load_something_cool, style="C.TButton")
Run Code Online (Sandbox Code Playgroud)

它完美地确保了文本显示正确。在我添加 ttk 位之前,我和你在 Mojave 的情况相同。


May*_*yan 7

我猜Tk中有错误。我使用的是MacOS 10.14.3,如果您最大化或最小化tkinter窗口,则出现按钮上的文本,另一种对我有用的解决方案是

from tkinter import *
from tkinter import ttk

button1 = ttk.Button(*your args here*)
Run Code Online (Sandbox Code Playgroud)

  • 使用 Mojava 10.14.3 和 Python 3 3.7.1。我遇到了同样的错误,将我的按钮从 tk 切换到 tkk 就成功了。 (2认同)

Pra*_*rni 7

将外观更改为灯光模式对我来说解决了这个问题。

要更改外观,请转到设置->常规->外观->灯光模式。

暗模式

灯光模式

  • 这就是解决我的问题的方法!谢谢! (2认同)

小智 5

我也有这个问题,升级到Mojave后和使用Homebrew的python3时,在Mac上可以100%重现。

切换到Python.org的Python 3.7.1软件包下载对我来说完全消除了这个问题。


小智 0

我仅在使用 py2app 冻结时遇到此问题。我的修复方法是在为每个框架或顶级创建所有元素后,在小部件上使用 .update_idletasks() 。