Skip to main content

tkinter超级工具库,仅为Windows开发支持

Project description

tkinterDev

tkinter高级工具包,实现了许多高级功能,我会持续更新的。😁😁😁

关于文档的更多内容请查看我的主页


依赖问题

这个库拥有许多好用的功能,但是很多功能的代价就是需要依赖库,如果想要体验到完整内容就可以使用pip下载以下所有的库。

  • pywin32 实现诸多高级功能需要的
  • win32mica 实现云母高级特效需要的
  • BlurWindow 实现亚克力高级特效需要的
  • darkdetect 用于检测是否是深色主题或是浅色主题
  • Deprecated 用于标记一些废弃的组件
  • tkcap 用于截取窗口图片
pip install pywin32
pip install win32mica
pip install BlurWindow
pip install darkdetect
pip install tkcap
pip install Deprecated

版本信息

请使用最新的稳定版,虽然最新版可以用,但不排除会出现一些不可免得错误,大版本更新有时会出现BUG,但是小版本可以考虑,因为小版本是对大版本的优化和改正,请按照下方标准进行安装。🐋🐳🐋🐳

  • 不稳定版本 1.0.0 - 1.5.0 1.8.3 - 1.8.4 2.2.2
  • 最新稳定版本 2.4.6
  • 最低稳定版本 1.6.0

1.6.0 稳定版发布。

1.7.0 功能补充,添加DevAppBar模块。

1.8.0 DevDrag优化,预添加组件DevAccumulatorButtonDevDocsDevResize(在以后可能会删除的组件)。

1.8.1 DevWindow优化,加入标题栏后,可显示在任务栏内。

1.8.2 DevTitleBar修正标题按钮放大按钮,删去最小化按钮的函数,因为最小化后就找不到窗口了,任务栏中的窗口也不见了,所以等以后尝试改正。

1.8.3 DevTitleBar优化。

1.8.4 DevToplevel修正。

1.8.5 DevTitleBar修正,真的最后一次修正了!

1.8.6 DevWindow优化,可以选择是否将窗口显示在任务栏。

1.8.7 DevWindow优化,可以使用centre()将窗口居中。

1.8.8 DevTitleBar优化,双击窗口放大。

1.9.0 正式稳定更新,组件参数各种优化,添加DevSideBar组件。

1.9.1 文档改正。

1.9.2 DevTitleBar修正最大化按钮和最小化按钮的的事件特征。

2.0.0 添加DevResize,可以通过DevResize来移动组件。

2.0.1 修正DevResize,在组件被消除时,将会批次销毁按钮组件

2.0.2 修改一些BUG,添加DevObject组件,用于管理组件。

2.0.3 修正错误。

2.0.4 修正错误。

2.0.6 添加图标,从tkdev.devicon里导入

2.1.0 优化代码,去除大量的windll代码,改用win32代码。添加window_custom函数,window参数输入tkinter.Tk窗口,即可使用win32去除窗口(因为可以用overrideredirect来自定义),所以还是摆在那,想用就用。添加window_embed函数,window填入tkinter.Tk窗口,toplevel填入tkinter.Toplevel窗口,即可使用系统的嵌套子系统。

2.1.1 添加window_custom_border_taskbar可以实现真正的自定义窗口。

2.1.2 添加window_minbox、window_maxbox。

2.1.3 添加devcore.DevSysTray组件,需安装pystray库使用

2.1.4 修正BUG

2.1.5 添加Stack组件

2.1.6 添加window_pos方法,可以快速移动窗口位置。添加taskbar_height参数快速获取任务栏高度。

2.1.7 添加devwin包,里面将是使用win32开发的组件。WinMDIWindow组件可以将TopLevel组件嵌入容器

2.2.0 添加devdraw包,使用Canvas进行绘画,现已做好DrawButton组件。并修改了一些默认值

2.2.1 导入win32mica库,添加DevWindow方法mica()启用云母效果,此功能仅在Windows11上可用。

2.2.2 更多功能实现 🚫(有严重BUG请勿使用)

2.3.0 严重BUG修正,请勿使用2.2.2版本。请勿同时使用mica()和acrylic(),如果需要,那么请将mica特效排在前面,acrylic排在后面,否则会出现不兼容的情况。

2.3.1 BUG修复

2.3.2 添加一键安装所有依赖库的功能,Install_ALL()

2.3.3 对亚克力特效的低配适配,在使用时加入low=True。

2.3.4 改进代码,修复在未装依赖库之前发生的错误

2.3.5 改进代码,添加DevWindow的方法screenshot()。

2.3.6 添加devnet包,则是从网上资料里找到的库

2.3.7 在使用Install_ALL时安装win32mica库时检测是否是Windows11系统,如果是Windows11系统就下载win32mica库

2.3.8 弃用DevTitleBar,请使用DevHeaderBar

2.3.9 开启实验性组件,devpre库,DevPreTooltip实现不依赖tkinter-tooltip库的自主开发的组件

2.3.10 devpre库新增DevPreToolbox组件,用于操作调试窗口的工具箱。新增DevTabber组件,将他放在窗口下方,用于切换界面。并改进了devcore.DevAction的其他参数。

2.3.11 添加tkdev-docs,但未完善,请等待更新

2.3.12 添加Uninstall、UpGrade

2.4.0 修复DevPreTooltip组件, 修复window_border无效窗柄的错误

2.4.1 重写DevPreTooltip组件,将它显示方式改成放在组件上几秒后显示在组件的下方

2.4.2 修复BUG

2.4.3 标注文档

2.4.4 Install、UpGrade添加安装预览版的选项

2.4.5 修复BUG

2.4.6 将DevTooltip删除,使用devpre中DevPreTooltip替换,去除tkinter-tooltip的依赖

2.4.7 修复BUG

2.4.8 移除devnet

2.5.0 BUG修复


devdocs

python -m tkdev_docs

devdemo

在终端输入以下代码,即可打开实例,看各个组件的功能🤣🤣

python -m tkdev

DevDrag 🤖

可以使组件拖动另一个组件进行移动,这算是里面做得最好的了。第一个填拖动那个组件使另一个组件移动,第二个填被拖动的组件。第三个填是否是窗口,默认为False

import tkdev as dev
import tkinter as tk

if __name__ == '__main__':
    root = tk.Tk()
    root.geometry("500x500")
    drag_widget = tk.Label(root, background="black", foreground="white", text="Hello DevDrag")
    drag_widget.pack(fill=tk.BOTH, expand=tk.YES)
    dev.DevDrag(drag_widget, drag_widget)
    root.mainloop()

运行以上代码,即可拖动窗口中的Label组件,因为是用18行代码写出来,并且无依赖,运行速度很快。但是还未实现调整组件大小的功能,有点苦恼。

运行问题❓

1.为什么我用这个拖动窗口会报错? 答:那是因为组件判断不了你是窗口还是组件,窗口用geometry,组件用place,两种方法不同。所以如果要用来拖动窗口的话,请加上iswindow参数,为True,即可正常运行。

import tkdev as dev

dev.DevDrag(widget, window, iswindow=true)

DevResize

可以通过拖拽旁边的按钮来修改组件的大小。

import tkdev as dev
import tkinter as tk

if __name__ == '__main__':
    root = tk.Tk() 
    root.geometry("500x500")
    button = tk.Button(root)
    button.place(x=10, y=10, width=480, height=480)
    dev.DevResize(widget=button)
    root.mainloop()

DevSubWindow🤖

Qt里可以使用MDI这个组件制作子窗口,而tkinter中未实现这个功能,而我又想制作tkinter的设计器,需要子窗口功能,于是我就自己做了一个,里面都是有tkinter组件做的,并非ttk。不是我不想要漂亮的界面,而是我发现使用ttk,按钮的边框太长了,显得不美观,于是就用tk组件了。

import tkdev as dev
import tkinter as tk

if __name__ == '__main__':
    root = tk.Tk()
    root.geometry("300x300")
    subwindow = dev.DevSubWindow(root, title="DevSubWindow")
    subwindow.place(x=5, y=5, width=290, height=290)

    root.mainloop()

运行问题❓

1.暂无,等待反馈


DevTitleBar和DevWindow

这两个组件需要一起搭配着进行使用最好,DevWindowwm_titlebar可以设置标题栏,而DevTitleBar做的标题栏与DevWindow正好很搭配。

import tkdev as dev
import tkinter as tk

if __name__ == '__main__':
    root = dev.DevWindow()
    root.geometry("300x300")
    titlebar = dev.DevTitleBar(root, iswindow=True, window=root, title_label="Hello")
    root.titlebar(titlebar)
    root.mainloop()

可是,当你运行以上的代码之后,你会发现,这个DevTitleBarDevSubWindow的标题栏一模一样,其实DevSubWindow就是使用DevTitleBar做的。close是指定是否显示关闭按钮,max是指定是否显示放大按钮,min是指定是否显示缩小按钮,title是指定是否显示标题栏。如果后面想要加入标题按钮、标题,可以使用add_close() add_max() add_min() add_title()进行添加

运行问题❓

1.为什么我用DevTitleBar时标题没有出现?答:这个组件的参数title并不是直接写入标题参数,而是需要用title_label参数设置标题栏的标题,因为title参数是决定是否显示标题栏的参数,写True则显示标题栏,反之隐藏。


DevStatusBar

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

tkinterDev-2.5.0.tar.gz (57.1 kB view hashes)

Uploaded Source

Built Distribution

tkinterDev-2.5.0-py3-none-any.whl (54.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page