栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

创建一个 tkinter 拓展包

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

创建一个 tkinter 拓展包

我在 GitHub 放置一个 tkinter 拓展包 xinetzone / pygui,您可以使用 PyPI 进行安装:

pip install tkinterx

tkinterx 的设计目标是简化 tkinter GUI 设计,提供一个便利的 API。下面以创建用户个人信息的表单并在不同窗口进行值传递为例来说明 tkinterx 的便利性。使用 tkinterx 可以这样:

from tkinter import Tk, ttk, StringVar
from tkinterx.meta import Windowmeta, showwarning, askokcancel, ask_window


class Window(Windowmeta):
    def __init__(self, master=None, cnf={}, **kw):
 super().__init__(master, cnf, **kw)

    def create_widget(self):
 self.add_row('Please enter your name:', 'name')
 self.add_row('Please enter your age:', 'age')
 self.add_row('Enter your information saving path:', 'save_path')

    def save(self, path, text):
 with open(path, 'w') as fp:
     fp.write(text)

    def run(self):
 self.withdraw()
 name = self.bunch['name'].get()
 age = self.bunch['age'].get()
 save_path = self.bunch['save_path'].get()
 if '' in [name, age, save_path]:
     showwarning(self)
 else:
     self.save(save_path, f"{name}: {age}")
     askokcancel(self)


class Root(Tk):
    def __init__(self):
 super().__init__()
 self.label_var = StringVar()
 self.create_widgets()
 self.layout()

    def create_buttons(self):
 style = ttk.Style()
 style.configure("C.TButton",
   foreground="green",
   background="white",
   relief='raise',
   justify='center',
   font=('YaHei', '10', 'bold'))
 self.table_button = ttk.Button(self, text='Fill in your name and age:',
    command=self.ask_table,
    style="C.TButton")

    def create_widgets(self):
 self.create_buttons()
 self.label = ttk.Label(self, textvariable=self.label_var)

    def ask_table(self):
 bunch = ask_window(self, Window)
 name, age = bunch['name'].get(), bunch['age'].get()
 self.label_var.set(f"{name}: {age}")

    def layout(self):
 self.table_button.pack()
 self.label.pack()


if __name__ == "__main__":
    root = Root()
    root.geometry('300x200')
    root.mainloop()

几何画板的成品(pygui 仓库中的)

运行如下代码便可生成一个几何画板:

# draw_graph.py
from tkinterx.window import DrawingWindow
if __name__ == "__main__":
    root = DrawingWindow()
    root.layout()
    root.mainloop()

画板展示:

该几何画板支持使用键盘的 ↑uparrow↑,↓downarrow↓,←leftarrow←, →rightarrow→ 移动使用鼠标左键定位的位置的最近的图形对象;也支持使用 F1 清除画布、按键 Delete 删除鼠标左键指定的图形;F2 填充图形。

除此之外,几何画板也支持微调框的大小,使用鼠标右键选中一个位置,然后软件会自动寻找离该位置最近的图形 A,拖动鼠标移动到您想要的位置 B,释放鼠标,则 A 的右下角坐标被改为 B。如果您使用鼠标右键选中图形的右下角,然后不断的点击、释放鼠标右键也可以实现图形放大功能。

在图6 的“3”区域中选择 Normal 模式可以点击 Save 将几何画板内创建的图形对象保存到 data/normal.json 之中;点击 Load 载入之前保存的画板信息。

如果您不想考虑代码的实现,可以直接点击 draw_graph.exe-v0.1 下载软件,直接使用。

2020/4/28 更新:添加自定义颜色,可下载:DrawingBoard-v1.0

界面:

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号