问题标签 [tkinter-macos]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 为什么这些 tkinter 样式不起作用?
* 为了消除任何混淆,我使用的是 macOS Catalina、Python 3.7.4 和 Tcl/Tk 8.6.9 *
我有一个项目在 ttkthemes 中使用“黑色”作为 ThemedTK 的主题。我正在尝试修改按钮的样式。
但是,我无法弄清楚如何在 set_theme_advanced() 方法之外修改主题,该方法只会改变我在此处阅读的颜色。我想将按钮文本更改为在主题中居中。但是,在解决此问题的过程中,我发现我无法在下面的示例代码中修改任一窗口中按钮文本的位置(对齐)。
如果您查看此示例代码,您将看到在第一个窗口中,文本在按钮上左对齐,但颜色正确,但在第二个窗口(使用 Tk)中,文本在所有按钮上居中对齐,并且没有颜色。两个窗口都没有响应对齐样式,并且 Tk 窗口似乎没有响应任何自定义样式。
提前感谢您的帮助。
* *编辑* * 阅读下面的答案后,我将代码分解为两个文件,以便没有两个主窗口。这确实改变了 Window2 的行为方式,但仍未应用样式。然后我只使用 Tk 和 ttk 创建了第三个窗口,但仍然没有应用该样式。
窗口 1(带有 tkthemed 和“黑色”主题样式集)
窗口 2(没有主题样式集的 tkthemed)
python - 使用 pipenv 时,`tkinter._test()` 按钮不可见
我现在正在学习 Tkinter 并尝试解决我的第一个问题,但发现 Google 并没有帮助。
我在 Mac OS X 10.15.1 (Catalina) 上运行此代码
我正在使用 Python 3.7,我的代码看起来像这样(每个 PEP8 标准有很多样板):
这会向控制台输出以下警告:
弃用警告:Tk 的系统版本已弃用,可能会在未来的版本中删除。请不要依赖它。设置 TK_SILENCE_DEPRECATION=1 以抑制此警告。
它还显示一个带有完全空白按钮的窗口:
据我了解,这些按钮应该说“点击我”和“退出”。
此外,当我单击顶部按钮时,它会闪烁黑色一秒钟,如下所示:
之后按钮比以前更宽:
我假设 Tk 版本错误可能与输出行为有关。但是我似乎找不到更新 Tk 的方法。我应该在这里做什么?
更新
在看到@ShayneLoyd 的回答(建议我需要更新版本的 Python 和更新版本的 Tk)后,我开始环顾四周,并在 Apple Discussion Boards 上找到了这篇文章,建议您可以使用自制软件安装链接的 Python 版本homebrew 自己安装的 Tk 版本。我试过这个但失败了,所以我用谷歌搜索了这个问题,发现这个 StackOverflow 帖子似乎建议我可以安装 ActiveTcl并且它会工作。
我从 ActiveState 安装了 ActiveTcl 并返回到我的项目。起初,我是这样运行的:
这确实有效!我可以阅读按钮,它的行为就像它应该的那样。然后我意识到我没有使用 pipenv,所以我做了一个快速测试:
现在我又回到了失败状态。我更新了我的脚本以显示 Tcl 和 Tk 版本,果然当我使用 pipenv 时它正在加载 Tcl/Tk 8.5.9 但是当我不使用 pipenv 时它正在加载 8.6.9
那么我现在该如何修复 pipenv 呢?
python - Mac OS 上的 Tkinter 文本框滚动问题
我在使用 Tkinter 文本框时遇到问题。滚动时会出现一条白线。我写了一个简单的代码让你重现这个问题。
注意:我在使用 Python3.x 运行脚本时遇到此问题,使用 Python2.x 运行脚本时不会出现此问题。
编辑:我正在使用 Python 3.7.5 版本、Tk 8.5 版本、macOS Catalina 10.15.1 (19B88)