【问题标题】:Are Python tkinter ttk themes available based on the operating systemPython tkinter ttk 主题是否基于操作系统可用
【发布时间】:2017-07-28 14:14:01
【问题描述】:

我正在使用 Python 3.5.2 和 tkinter.ttk 模块在 Linux (Kubuntu 16.04) 上开发一个简单的 GUI 实用程序。我的ttk.__version__ == 0.3.1。有四个可用的小部件主题:'clam', 'alt', 'classic', 'default'。我在其他地方看到其他安装有更多可供选择。

是否可以为每个操作系统下载和安装该软件?我想知道其他主题是否不一定是跨平台的,并且可能是为某些操作系统设计的?

注意我是编写 GUI 的新手。

【问题讨论】:

  • 没错,主题不一定是跨平台的。

标签: python tkinter ttk


【解决方案1】:

我不认为它们(全部)是跨平台的,不仅从我的经验来看,而且从 Joe English 2004 年的论文“The Tile Widget Set”(第 1-2 页)的以下摘录(a有点老了,但我认为这些东西今天仍然存在)。

图 1 显示了 3 个不同的按钮。第一个是经典的Motif-style 按钮。注意外部高亮环(表示键盘焦点)和粗内边框(表示这是“默认”按钮)。 第二个是Windows 风格 按钮:它的边框略有不同,焦点指示器是在边框内绘制的虚线框,而不是在外面的实线框。 第三个按钮则完全不同。

除了这些并不是真正的三个不同按钮:它实际上是在三个不同主题下绘制的同一个按钮。

Tile 包包含几个内置主题。 X11 上的默认主题具有新的流线型外观;一个实现 Tk 当前 Motif 外观的 classic 主题也是可用的。

在 Windows XP 上,xpnative 主题使用 Windows“视觉样式”API 使 Tk 小部件与本机控件无法区分。在其他版本的 Windows 上,winnative 主题符合 Microsoft Windows 用户体验指南

在 Mac OSX 上,aqua 主题使用 Carbon Appearance Manager 该平台上的(几乎)原生外观。

新主题可以实现为用 Tcl 或 C 编写的附加包,具体取决于所需的定制级别。

Tile 主题是元素、布局和样式的集合,它们与小部件选项相结合以确定外观。

因此,总而言之,有针对不同操作系统的自定义主题。您也可以使用 C 或 Tcl 实现您的。

【讨论】:

  • 在 tkdocs 样式教程中也提到(更简短和明确)“每个主题可用的元素、名称和元素选项通常没有记录(除了阅读主题定义文件本身),但是通常通过主题自省来识别(我们很快就会看到)。因为并非所有主题都在所有平台上都可用(例如“aqua”只能在 Mac OS X 上运行),所以您需要随时访问每个平台和主题你需要继续运行。”
猜你喜欢
  • 2016-02-26
  • 2019-10-27
  • 2011-12-22
  • 2012-06-09
  • 2016-02-20
  • 2010-12-31
  • 2016-06-14
  • 2015-01-18
  • 1970-01-01
相关资源
最近更新 更多