extra for tkinter
Project description
tkadw
使用tkinter.Canvas、tcltk扩展自绘技术实现的扩展界面
轻量仅用
python代码实现,不掺杂大型数据文件
支持圆角运用
DrawEngine引擎快速画出圆角矩形
跨平台
tkinter.Canvas的跨平台性
安装
安装使用的途径仅在pypi.org平台上,所以可以直接使用pip
python -m pip install -U tkadw
Requirement already satisfied: tkadw in $pythonpath\lib\site-packages (0.1.4)
对于windows平台,安装时需勾选tcl/tk选项安装tkinter
对于linux平台,需自行查询python3-tk的安装步骤
包树视图
TKADW 源目录
├─advanced 高级包:用平台的接口实现更多扩展功能
├─canvas Canvas包:集合基本的绘画组件及额外组件库
│ ├─adwite 使用Canvas包设计的UI组件库
│ ├─atomize 使用Canvas包设计的UI组件库
│ └─fluent 使用Canvas包设计的UI组件库
└─tkite 其他根据gtk设计的UI组件库
└─gtk 使用Canvas包设计的UI组件库
Canvas组件库
Canvas组件库是用tkinter.Canvas自绘技术进行绘制实现的基础组件库
主题配置
我提供了一个配置主题的方法palette,主题设置为字典类型。
如AdwDrawButton的样式
{
"button": { # 类
"back": "#353535", # 背景颜色
"border": "#454545", # 边框颜色
"text_back": "#ffffff", # 文字颜色
"border_width": 1, # 边框宽带
"active": { # 状态:被鼠标碰到
"back": "#3a3a3a", # 背景颜色
"border": "#454545", # 边框颜色
"text_back": "#cecece", # 文字颜色
"border_width": 1, # 边框宽带
},
"pressed": { # 状态:被鼠标按下
"back": "#2f2f2f", # 背景颜色
"border": "#454545", # 边框颜色
"text_back": "#9a9a9a", # 文字颜色
"border_width": 1, # 边框宽带
},
}
}
如果想要制作基于Canvas组件的扩展组件,可以继承default_palette方法,在此会将设置为默认样式,以GTkButton为例
from tkadw import AdwDrawRoundButton3
class GTkButton(AdwDrawRoundButton3):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def default_palette(self):
self.palette_gtk_light()
def palette_gtk_light(self):
self.palette(
{
"button": {
"radius": 11,
"back": "#f6f5f4",
"border": "#ccc6c1",
"text_back": "#2e3436",
"border_width": 1.3,
"active": {
"back": "#f8f8f7",
"border": "#dad6d2",
"text_back": "#2e3436",
"border_width": 1.3,
},
"pressed": {
"back": "#dad6d2",
"border": "#dad6d2",
"text_back": "#2e3436",
"border_width": 1.3,
},
}
}
GTk组件库
GTk组件库使用tkadw.canvas设计的UI组件库。我为每个组件都额外设计了Dark暗黑组件。
暂无macOS下的演示图,因为作者是个学生党,买不起苹果电脑
GTkButton 按钮组件
示例
from tkinter import Tk
from tkadw import GTkButton, GTkDarkButton, GTkFrame, GTkDarkFrame
root = Tk()
root.configure(background="#1e1e1e")
frame = GTkFrame(root)
button1 = GTkButton(frame.frame, text="GTkButton")
button1.pack(fill="x", ipadx=5, padx=5, pady=5)
frame.pack(fill="both", expand="yes", side="right")
frame2 = GTkDarkFrame(root)
button2 = GTkDarkButton(frame2.frame, text="GTkDarkButton")
button2.pack(fill="x", ipadx=5, padx=5, pady=5)
frame2.pack(fill="both", expand="yes", side="left")
root.mainloop()
GTkEntry 输入框组件
示例
from tkinter import Tk
from tkadw import GTkEntry, GTkDarkEntry, GTkFrame, GTkDarkFrame
root = Tk()
root.configure(background="#1e1e1e")
frame = GTkFrame(root)
entry1 = GTkEntry(frame.frame)
entry1.pack(fill="x", ipadx=5, padx=5, pady=5)
frame.pack(fill="both", expand="yes", side="right")
frame2 = GTkDarkFrame(root)
entry2 = GTkDarkEntry(frame2.frame)
entry2.pack(fill="x", ipadx=5, padx=5, pady=5)
frame2.pack(fill="both", expand="yes", side="left")
root.mainloop()
GTkTextBox 文本输入框组件
示例
from tkinter import Tk
from tkadw import GTkFrame, GTkDarkFrame, GTkTextBox, GTkDarkTextBox
root = Tk()
root.configure(background="#1f1f1f")
frame = GTkFrame(root)
textbox1 = GTkTextBox(frame.frame)
textbox1.pack(fill="x", ipadx=5, padx=5, pady=5)
frame.pack(fill="both", expand="yes", side="right")
frame2 = GTkDarkFrame(root)
textbox2 = GTkDarkTextBox(frame2.frame)
textbox2.pack(fill="x", ipadx=5, padx=5, pady=5)
frame2.pack(fill="both", expand="yes", side="left")
root.mainloop()
更新记录
<=0.2.0:作者都没记下来
0.2.0:
201主题配置
202改变修复AdwDrawEntry的Entry组件在Linux平台下出现边框
203修复各别解释器类似注释的错误
0.2.1
211扩充README文档
212新增组件Adw
213删除多余文件
0.2.2
221扩展额外界面库BiliBili,根据BiliBili桌面版设计
222修复palette修改完后没完全修改配色的问题
223扩展额外界面库Win11,根据Sunvalley设计
224修复AdwDrawButton类边框遮挡的问题
0.2.3
231AdwDrawEngine添加绘画渐变图形的方法
232扩展额外界面库Fluent,作者制作设计
0.2.4
241补充导入
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tkadw-0.2.4.tar.gz.
File metadata
- Download URL: tkadw-0.2.4.tar.gz
- Upload date:
- Size: 133.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.11.2 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0e62a825ce294e14959fb19bfae554701a06831c90e97eb03534365f1964a66
|
|
| MD5 |
dbffb12c01d1d11021edbbdaf2efa5b9
|
|
| BLAKE2b-256 |
ac1c7249ac9f0c64355910976f5ca7c9a90261fa15a2801476976259ee9dcdb3
|
File details
Details for the file tkadw-0.2.4-py3-none-any.whl.
File metadata
- Download URL: tkadw-0.2.4-py3-none-any.whl
- Upload date:
- Size: 83.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.11.2 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1300a81e7f64f4e2541b762373be526a5edd3cb633d13c589625448aafced630
|
|
| MD5 |
2eb0978bd72f6de8ecbf2bd7c43b0759
|
|
| BLAKE2b-256 |
19d6315aea1e2846f58b89a89cd86933537b0f96771238335034e0e64326402e
|