专栏/Python ttkbootstrap教程(一)基础

Python ttkbootstrap教程(一)基础

2022年10月22日 01:58--浏览 · --点赞 · --评论
粉丝:5文章:1

关于:

    ttkbootstrap是一个tkinter的美化库, 为tkinter提供了许多现代化的主题扩展

    官方文档: https://ttkbootstrap.readthedocs.io/en/latest/

GIF
内置主题

安装:

1. pypi安装

python -m pip install ttkbootstrap

2. Github安装

python -m pip install git+https://github.com/israel-dryer/ttkbootstrap

3. 测试

Python环境中导入ttkbootstrap如果不报错就代表安装成功:

>>> import ttkbootstrap

教程:

创建应用程序

在构建ttkbootstrap窗口应用程序时, 你可以使用两种方式:

  1. 使用传统tkinter或ttk来构建;

  2. 使用ttkbootstrap模块中的Window类创建, 这可以更轻松的配置窗口;

1. 传统方法

此方法更为熟悉但存在一定差异:

  • 不是直接导入ttkbootstrap ttk

  • 使用参数调用关键字, 而不是直接使用参数bootstyle style

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()
运行结果


2. 新方法

使用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主题, 但你可以独立通过对象或使用类使用所有内置主题来启动应用程序

import ttkbootstrap as ttk

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

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

使用主题部件

ttkbootstrap部件拥有数十种预定义样式, 这些样式是使用修改构件类型和颜色关键字应用的, 为每个主题定义实际颜色值

例如: 使用outline关键字将会绘制有轮廓类型的按钮, 使用info关键字将更改按钮的颜色

1. 样式颜色

下面示例演示了每种内置样式颜色的按钮

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对象, 也可以使用对象的属性

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)

2. 样式类型

关键字可以控制所显示的小部件的类型, 下面示例显示了一个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关键字可以将一个实心按钮转换成轮廓按钮

3. 关键字用法

ttkbootstrap的样式引导十分灵活, 它会使用正则表达式进行判断引导

以下所有变体都是合法的:

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

字符串中官方推荐分隔符是短横线( - )

参考文章: https://ttkbootstrap.readthedocs.io/en/latest/


投诉或建议