📜  python gui 使用 css (1)

📅  最后修改于: 2023-12-03 14:45:58.467000             🧑  作者: Mango

Python Gui 使用 CSS

在 Python 中,我们可以使用多种 GUI 工具包,例如 Tkinter、PyQt、wxPython 等。而在设计用户界面时,CSS (层叠样式表) 可以用来定义和美化控件的样式,从而使 GUI 更加美观和易于使用。

使用 CSS 样式表

使用 CSS 样式表,我们可以将 GUI 中的控件与其样式分离,使得后期维护和修改更加方便。要使用 CSS 样式表,我们需要先将控件和样式进行关联。下面以使用 Tkinter 作为示例:

import tkinter as tk

root = tk.Tk()

# 创建一个标签,用来演示样式
lbl = tk.Label(root, text="Hello, world!")

# 定义样式,将字体设为黑体,字号为 20
style = tk.Style()
style.configure("my.TLabel", font=("黑体", 20))

# 将标签与样式关联
lbl.config(style="my.TLabel")

lbl.pack()
root.mainloop()

在上面的例子中,我们使用了 Tkinter.Style 类来定义样式,并见名知意地将样式名设为 my.TLabel,其中 my 是样式的前缀,TLabel 则表示使用该样式的控件类型是 Label。接下来,我们在样式中配置了字体为黑体,字号为 20,最后将标签的 style 属性设置为 my.TLabel,即可将标签与样式关联起来,从而使得标签的样式与其内容分离。运行上面的代码,你会看到一个黑体的标签,字号为 20。

在 CSS 样式表中定义样式

在 CSS 样式表中,可以定义多种样式,可以涉及到控件的颜色、字体、边框、填充等属性。下面是一个使用 Tkinter 中的 CSS 样式表的例子:

import tkinter as tk

root = tk.Tk()

# 创建一个标签,用来演示样式
lbl = tk.Label(root, text="Hello, world!")

# 创建样式表
style = tk.Style()

# 在样式表中定义样式
style.configure(
    "my.TLabel",
    font=("helvetica", 16, "bold"),
    foreground="white",
    background="#333",
    borderwidth=3,
    relief="groove",
    padx=10,
    pady=5,
)

# 将标签与样式关联
lbl.config(style="my.TLabel")

lbl.pack()
root.mainloop()

在上面的例子中,我们在样式表中定义了名为 my.TLabel 的样式,其中包含了控件的字体、前景色、背景色、边框宽度、边框样式、水平方向和垂直方向上的填充量等属性。最后,我们将标签的 style 属性设置为 my.TLabel,从而使用该样式美化了标签。你可以自由地修改样式表中的属性值,实现各种不同的样式效果。

总结

使用 CSS 样式表,可以使得 GUI 代码更加清晰、易于维护,并且可以实现多种漂亮的样式效果。如果你使用 Tkinter,那么可以通过 Tkinter.Style 类来定义和应用样式;如果使用其他的 GUI 工具包,也应该可以找到类似的方法。