跳转至

教程

创建应用程序

在构建 ttkbootstrap 应用程序时,可以使用两种方法。如果您使用过tkinterttk,则第一个是熟悉的。第二个使用新的Window类来简化整个过程。

传统方法

此方法使用熟悉的模式。但是,存在一些差异:

  • 导入ttkbootstrap而不是ttk
  • 使用bootstyle参数添加关键字,而不是使用style参数。

常量是首选

我更喜欢代码中的常量而不是字符串。但是,请随意使用您觉得舒服的编码风格。bootstyle关键字API非常灵活,因此请务必查看语法选项

import tkinter as tk
import ttkbootstrap as ttk
from ttkbootstrap.constants import *

root = tk.Tk()

b1 = ttk.Button(root, text="Button 1", bootstyle=SUCCESS)
b1.pack(side=LEFT, padx=5, pady=10)

b2 = ttk.Button(root, text="Button 2", bootstyle=(INFO, OUTLINE))
b2.pack(side=LEFT, padx=5, pady=10)

root.mainloop()

上面的代码将生成带有两个按钮的此窗口。

简单窗口示例

新方法

可以使用新的Window类生成相同的结果,您可以在 API 文档中阅读有关该类的信息。起初,差异可能看起来很小,但正如您将看到的,Window类使用参数来设置许多属性和质量,而这些属性和质量只能在使用Tk类时使用方法进行设置。此外,Style对象会自动附加到Window对象,如后面的示例所示。

import ttkbootstrap as ttk
from ttkbootstrap.constants import *

root = ttk.Window()

b1 = ttk.Button(root, text="Button 1", bootstyle=SUCCESS)
b1.pack(side=LEFT, padx=5, pady=10)

b2 = ttk.Button(root, text="Button 2", bootstyle=(INFO, OUTLINE))
b2.pack(side=LEFT, padx=5, pady=10)

root.mainloop()

选择主题

默认主题是litera,但您可以通过单独使用Style对象或通过Window类使用任何内置主题来启动应用程序。

import ttkbootstrap as ttk

# 传统方法
root = ttk.Tk()
style = ttk.Style("darkly")

# 新方法
root = ttk.Window(themename="darkly")

使用主题小部件

ttkbootstrap 小部件具有数十种预定义的样式 ,这些样式使用修改小部件类型颜色关键字*进行应用。每个主题都定义了实际的颜色值。

例如,使用关键字outline将绘制一个具有外框 类型 的按钮,但使用关键字info将更改外框和文本的 颜色

样式颜色

下面的示例显示了每种颜色的按钮。

import ttkbootstrap as ttk
from ttkbootstrap.constants import *

root = ttk.Window()

b1 = ttk.Button(root, text='primary', bootstyle=PRIMARY)
b1.pack(side=LEFT, padx=5, pady=5)

b2 = ttk.Button(root, text='secondary', bootstyle=SECONDARY)
b2.pack(side=LEFT, padx=5, pady=5)

b3 = ttk.Button(root, text='success', bootstyle=SUCCESS)
b3.pack(side=LEFT, padx=5, pady=5)

b4 = ttk.Button(root, text='info', bootstyle=INFO)
b4.pack(side=LEFT, padx=5, pady=5)

b5 = ttk.Button(root, text='warning', bootstyle=WARNING)
b5.pack(side=LEFT, padx=5, pady=5)

b6 = ttk.Button(root, text='danger', bootstyle=DANGER)
b6.pack(side=LEFT, padx=5, pady=5)

b7 = ttk.Button(root, text='light', bootstyle=LIGHT)
b7.pack(side=LEFT, padx=5, pady=5)

b8 = ttk.Button(root, text='dark', bootstyle=DARK)
b8.pack(side=LEFT, padx=5, pady=5)

root.mainloop()

按钮颜色

我可以通过Style.colors对象使用更简单的方式创建这些按钮,其中包含对所有颜色的引用主题,它也是一个 迭代器

至于Style对象,您可以使用Style类,或使用Window对象的style属性。

import ttkbootstrap as ttk
from ttkbootstrap.constants import *

root = ttk.Window()

for color in root.style.colors:
    b = ttk.Button(root, text=color, bootstyle=color)
    b.pack(side=LEFT, padx=5, pady=5)

样式类型

keyword可以控制显示的小部件的类型。考虑 以下示例显示了一个solid和一个outline按钮。它们 都是按钮,但具有不同的类型

import ttkbootstrap as ttk
from ttkbootstrap.constants import *

root = ttk.Window()

b1 = ttk.Button(root, text="Solid Button", bootstyle=SUCCESS)
b1.pack(side=LEFT, padx=5, pady=10)

b2 = ttk.Button(root, text="Outline Button", bootstyle=(SUCCESS, OUTLINE))
b2.pack(side=LEFT, padx=5, pady=10)

root.mainloop()
如您所见,通过添加outline关键字,按钮已 从solid转换为outline按钮类型。

按钮样式

关键字用法

关于使用关键字的最后一点……bootstyle参数非常灵活。关键字的外观并不重要。后台有一个正则表达式,用于分析输入并将其转换为适当的 ttk 样式。您可以传入一串关键字,也可以传入可迭代的关键字,例如使用列表元组

以下所有变体都是合法的,并且将产生相同的样式。

  • "info-outline"
  • "infooutline"
  • "info outline"
  • "outline-info"
  • ("info", "outline")
  • (INFO, OUTLINE)

建议的关键字分隔符为短划线

如果使用字符串作为关键字,建议尽可能使用短划线分隔关键字,如上面的 第一个 示例所示。

如果使用常量,并且您使用的是多个关键字,则您应该使用列表元组,如上面的 最后一个 示例所示。