CustomTkinter:【三】颜色和主题、外观模式、缩放、包装
GitHub地址: https://github.com/TomSchimansky/CustomTkinter
官网: https://customtkinter.tomschimansky.com/
官方教程文档:https://customtkinter.tomschimansky.com/documentation/
1、颜色和主题
可以自定义小部件的所有颜色,可以在特定小部件的文档中找到适当的参数。注意 bg_color 只是小部件后面的颜色,如果它有圆角的话。小部件的主要颜色称为 fg_color:
颜色可以设置为单个颜色名称 ( “red”)、单个十六进制颜色字符串 ( “#FF0000”) 或用于亮模式颜色和暗模式颜色的元组颜色 ( (“red”, “darkred”))。然后小部件将根据当前外观模式自动选择当前颜色。因此,通过使用元组颜色,小部件可以在浅色和深色外观模式下具有不同的颜色。如果您使用单一颜色,那么该颜色将同时用于浅色和深色外观模式。
例子:
button = customtkinter.CTkButton(root_tk, fg_color="red") # single color name
button = customtkinter.CTkButton(root_tk, fg_color="#FF0000") # single hex string
button = customtkinter.CTkButton(root_tk, fg_color=("#DB3E39", "#821D1A")) # tuple color
默认情况下,所有颜色都由颜色主题设置。目前提供三个主题:“blue”,“dark-blue"和"green”,其中“蓝色”是标准主题。所有主题都为浅色和深色外观模式提供元组颜色。
您可以在编程开始时设置主题,如下所示:
customtkinter.set_default_color_theme("dark-blue") # Themes: "blue" (standard), "green", "dark-blue"
自定义
主题由 .json 文件描述,如下所示:dark-blue.json。您还可以创建自己的主题,这样您就不必手动为每个小部件设置样式。只需复制上面的 .json 文件并更改值。然后,您可以通过将 .json 文件的路径传递给方法来加载新主题.set_default_color_theme:
dark-blue.json文件地址https://github.com/TomSchimansky/CustomTkinter/blob/master/customtkinter/assets/themes/dark-blue.json
customtkinter.set_default_color_theme("path/to/your/custom_theme.json")
2 、外观模式
如果颜色被指定为元组颜色,外观模式决定从元组颜色中选取哪种颜色。您可以随时使用以下命令设置外观模式:
customtkinter.set_appearance_mode("system") # default
customtkinter.set_appearance_mode("dark")
customtkinter.set_appearance_mode("light")
如果将外观模式设置为"system",则会从操作系统读取当前模式。如果操作系统的外观模式在程序运行期间发生变化,它也会适应。“light"请注意,在 Linux 上,如果设置为,它将始终处于模式"system”,因为目前无法从操作系统读取模式,这可能会在未来实现。
3 、缩放
高DPI
CustomTkinter 默认支持 macOS 和 Windows 上的 HighDPI 缩放。在 macOS 上,缩放自动适用于 Tk 窗口。在 Windows 上,应用可识别 DPI ( windll.shcore.SetProcessDpiAwareness(2)) 并检测显示器的当前比例因子。然后 CustomTkinter 按此因子缩放每个元素和窗口尺寸。
您可以像这样停用此自动缩放:
customtkinter.deactivate_automatic_dpi_awareness()
然后窗口在缩放值超过 100% 的 Windows 上会变得模糊。
自定义
除了自动检测的比例因子外,您还可以为应用程序设置自己的比例因子,如下所示:
customtkinter.set_widget_scaling(float_value) # widget dimensions and text size
customtkinter.set_window_scaling(float_value) # window geometry dimensions
4、包装
Windows PyInstaller(自动 Py 到 Exe
当您使用 pyinstaller 在 Windows 上创建 .exe 时,您必须考虑两件事。首先,你不能使用–onefilepyinstaller选项,因为customtkinter库不仅包含.py文件,还包含.json和.otf等数据文件。PyInstaller 无法将它们打包到单个 .exe 文件中,因此您必须使用该–onedir选项。
其次,您必须使用–add-datapyinstaller 选项手动包含 customtkinter 目录。因为出于某种原因,pyinstaller 不会自动包含库中的 .json 等数据文件。您可以使用以下命令找到 customtkinter 库的安装位置:
pip show customtkinter
将显示一个位置,例如:c:\users<user_name>\appdata\local\programs\python\python310\lib\site-packages
然后像这样添加库文件夹:–add-data “C:/Users/<user_name>/AppData/Local/Programs/Python/Python310/Lib/site-packages/customtkinter;customtkinter/”
使用 Auto Py to Exe 你会这样做:
对于完整的命令,你会得到这样的东西:
pyinstaller --noconfirm --onedir --windowed --add-data "<CustomTkinter Location>/customtkinter;customtkinter/" "<Path to Python Script>"
更多推荐
所有评论(0)