python: Parent-child form operations using ttkbootstrap

# encoding: utf-8
# 版權所有 2024 ©塗聚文有限公司
# 許可資訊查看:言語成了邀功的功臣,還需要行爲每日來值班嗎?
# 描述: 主、子表單 窗體傳值  Parent-child form operations
# Author    : geovindu,Geovin Du 塗聚文.
# IDE       : PyCharm 2023.1 python 3.11
# OS        : windows 10
# Datetime  : 2024/11/05 20:09
# User      : geovindu
# Product   : PyCharm
# Project   : IctGame
# File      : ttkbootstrap.py
# explain   : 學習import ttkbootstrap as ttk
from ttkbootstrap.constants import *
from ttkbootstrap.tableview import Tableview'''
https://ttkbootstrap.readthedocs.io/en/latest/themes/light/
https://ttkbootstrap.readthedocs.io/en/latest/themes/dark/
https://ttkbootstrap.readthedocs.io/en/latest/zh/api/tableview/tableview/
https://ttkbootstrap.readthedocs.io/en/latest/styleguide/entry/
https://docs.pysimplegui.com/en/latest/documentation/module/extending/event_bindings/
https://python-course.eu/tkinter/events-and-binds-in-tkinter.phpcerulean
cosmo
cyborg
darkly
flatly
journal
litera
lumen
lux
materia
minty
morph
pulse
quartz
sandstone
simplex
sketchy
sketchy
solar
spacelab
superhero
united
vapor
vapor
zephyr
'''class MainWidnow(ttk.Window):""""""def __init__(self):""""""super().__init__(themename="cosmo",title="塗聚文學習進行中")#self.Window(themename="cosmo") #superhero    self.maxsize=300#self.geometry('{}x{}'.format(1350, 900))self.first_var = ttk.Variable()self.title="main"self.themename='superhero'self.last_var = ttk.Variable()self.occupation_var = ttk.Variable()self.colors = self.style.colorsself.coldata = [{"text": "LicenseNumber", "stretch": False},"CompanyName",{"text": "UserCount", "stretch": False},]self.rowdata = [('A100', '深圳市分公司', 120),('A101', '廣州市分公司.', 145),('A102', '東莞市分公司.', 136),('A103', '惠州市分公司', 112),('A104', '徽州市分公司.', 245),('A105', '佛山市分公司.', 236),('A106', '陽江市分公司', 212),('A107', '江門市分公司.', 345),('A108', '中山市分公司.', 336),('A109', '河源市分公司', 312),('A110', '贛州市分公司.', 445),('A111', '湖州市分公司.', 436),('A112', '抚州市分公司', 412),('A113', '南昌市分公司.', 545),('A114', '饒州市分公司.', 536),('A115', '吉州市分公司', 512),('A116', '濟州市分公司', 645),('A117', '冀州市分公司.', 636),('A118', '薊州市分公司', 612),('A119', '雷州市分公司.', 745),('A120', '台州市分公司.', 736),('A121', '泰州市分公司', 712),('A122', '南京市分公司.', 845),('A123', '常州市分公司.', 836),('A124', '青州市分公司', 812),('A125', '德州市分公司.', 945),('A126', '幽州市分公司.', 36),('A127', '杭州市分公司', 912),('A128', '溫州市分公司.', 945),('A129', '泉州市分公司', 1036),('A130', '文州市分公司', 1012),('A131', '海州市分公司.', 1045),('A132', '儋州市分公司.', 1136),('A133', '江州市分公司', 1112),('A134', '上海市分公司.', 1145),('A135', '北京市分公司.', 1136)]self.dt = Tableview(master=self,coldata=self.coldata,rowdata=self.rowdata,paginated=True,pagesize=15,searchable=True,bootstyle=PRIMARY,stripecolor=(self.colors.light, None),)self.dt.pack(fill=BOTH, expand=YES, padx=10, pady=10)#dt.hide_selected_column(cid=0)  #隱藏第一列self.dt.view.bind("<Double-1>", self.rowselected)#dt.view.bind("<<TreeviewSelect>>", rowselected)b1 = ttk.Button(self, text="Open", bootstyle="success")  #,command=self.openwindowsb1.pack(side=LEFT, padx=5, pady=10)#b1.bind("<Double-1>",openwindows)b1.bind("<Button-1>",self.openwindows)b2 = ttk.Button(self, text="New", bootstyle="info-outline")b2.pack(side=LEFT, padx=5, pady=10)def rowselected(self,event) -> None:try:              iid =self.dt.view.selection()[0]#print(iid)values = self.dt.view.item(iid, 'values')self.first_var.set(values[0])self.last_var.set(values[1])self.occupation_var.set(values[2])print(values[0],values[1],values[2])data=[values[0],values[1],values[2]]subwindow = ChildNewWindow(data)except IndexError as err:passdef openwindows(self,event):""""""try:print('open windows')iid =self.dt.view.selection()[0]             values = self.dt.view.item(iid, 'values')data=[values[0],values[1],values[2]]                subwindow = ChildNewWindow(data)            self.update()except IndexError as err:passclass ChildNewWindow(ttk.Window):"""彈出子窗口 ttk.Toplevel"""def __init__(self,data):""":param master: """super().__init__(title='Child Window')        self.geometry('{}x{}'.format(850, 900))self.title='Child Window'self.label = ttk.Label(self, text=data[0])self.label.pack()self.labe2 = ttk.Label(self, text=data[1])self.labe2.pack()self.labe3 = ttk.Label(self, text=data[2])self.labe3.pack()if __name__=="__main__":"""main output"""mainwindow=MainWidnow()    mainwindow.mainloop()

輸出:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/4888.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

能让企业“脱胎换骨”的局域网电脑监控软件,有哪些?

老板们&#xff0c;是不是发现现在员工们在上班时间玩得那叫一个欢&#xff0c;而工作却被丢在一边&#xff1f;别愁啦&#xff01;今天就给各位带来一份超赞的局域网电脑监控软件指南&#xff0c;这就像是给企业配上了 “超级放大镜”&#xff0c;员工的一举一动都能看得清清楚…

什么是计算机视觉算法?——深度剖析背后的技术与应用

计算机视觉&#xff08;Computer Vision&#xff09;作为人工智能的重要分支&#xff0c;正在逐渐改变我们的生活。从人脸识别到自动驾驶&#xff0c;从医疗影像诊断到视频监控&#xff0c;计算机视觉的应用无处不在&#xff0c;而支撑这一切的正是计算机视觉算法。那么&#x…

产品如何3D建模?如何根据使用场景选购3D扫描仪?

随着科技的飞速发展&#xff0c;3D模型已从昔日的小众应用转变为各行各业不可或缺的利器。在文博、电商、家居、汽车、建筑及游戏影视等众多领域&#xff0c;3D模型以其直观、真实的视觉体验发挥着至关重要的作用。它不仅使用户能深入了解产品的外观、结构与功能&#xff0c;还…

信息安全工程师(79)网络安全测评概况

一、定义与目的 网络安全测评是指参照一定的标准规范要求&#xff0c;通过一系列的技术、管理方法&#xff0c;获取评估对象的网络安全状况信息&#xff0c;并对其给出相应的网络安全情况综合判定。其对象主要为信息系统的组成要素或信息系统自身。网络安全测评的目的是为了提高…

Windows 系统上配置 SSH 密钥验证,实现无密码登录

Windows 系统上配置 SSH 密钥验证&#xff0c;实现无密码登录 在日常工作中&#xff0c;使用密码登录远程云服务器往往让人感到繁琐。云服务器的密码通常较长&#xff0c;难以记忆&#xff0c;每次登录都需要反复输入&#xff0c;既不便捷也影响效率。此外&#xff0c;由于网络…

俯仰 (pitch) 偏摆 (yaw) 翻滚 (roll)

pitch()&#xff1a;俯仰&#xff0c;将物体绕X轴旋转&#xff08;localRotationX&#xff09; yaw()&#xff1a;航向&#xff0c;将物体绕Y轴旋转&#xff08;localRotationY&#xff09; roll()&#xff1a;横滚&#xff0c;将物体绕Z轴旋转&#xff08;localRotationZ&…

es数据同步(仅供自己参考)

数据同步的问题分析&#xff1a; 当MySQL进行增删改查的时候&#xff0c;数据库的数据有所改变&#xff0c;这个时候需要修改es中的索引库的值&#xff0c;这个时候就涉及到了数据同步的问题 解决方法&#xff1a; 1、同步方法&#xff1a; 当服务对MySQL进行增删改的时候&…

从0开始学习Linux——Yum工具

往期目录&#xff1a; 从0开始学习Linux——简介&安装 从0开始学习Linux——搭建属于自己的Linux虚拟机 从0开始学习Linux——文本编辑器 上一个章节我们简单了解了Linux中常用的一些文本编辑器&#xff0c;本次教程我们将学习yum工具。 一、Yum简介 Yum&#xff08;全名…

高级AI记录笔记(一)

学习位置 B站位置&#xff1a;红豆丨泥 UE AI 教程原作者Youtube位置&#xff1a;https://youtu.be/-t3PbGRazKg?siRVoaBr4476k88gct素材自备 提前将动画素材准备好 斧头蓝图 斧头武器插槽 混合空间 就是改了一下第三人称模版的动画蓝图 行为树中不用Wait实现攻击完…

ffmpeg的下载与安装

废话不多说&#xff0c; 下载地址&#xff0c;得找官网&#xff0c;不然得注意是不是有夹带私活。 FFmpeg 这个是目前的最新版本&#xff1b; 下载的时候看下自己要的版本&#xff0c;我的是Windows10&#xff1b; 解压后的版本长这样&#xff1a; 接下来进行环境变量的配置&…

【http协议笔记】-- 浏览器简单分析get、post请求

环境&#xff1a;为了了解http协议的交互方式&#xff0c;使用edge浏览器简单分析协议内容&#xff0c;给刚入门的小伙伴分享一下&#xff0c;方便大家学习。 以菜鸟教程的网站为例子&#xff1a; 分析post&#xff1a; 请求url&#xff1a; 请求参数&#xff1a; 请求相应&a…

SpringBoot【实用篇】- 热部署

文章目录 目标:1.手动启动热部署2.自动启动热部署4.禁用热部署 目标: 手动启动热部署自动启动热部署热部署范围配置关闭热部署 1.手动启动热部署 当我们没有热部署的时候&#xff0c;我们必须在代码修改完后再重启程序&#xff0c;程序才会同步你修改的信息。如果我们想快速查…

vue3相对vue2有哪些改变?

https://blog.csdn.net/weixin_44475093/article/details/112386778 https://blog.csdn.net/userDengDeng/article/details/114941956 一、vue3的新特性&#xff1a; 1、速度更快 vue3相比vue2 重写了虚拟Dom实现编译模板的优化更高效的组件初始化undate性能提高1.3~2倍SSR速度…

数据库概论实验一

声明&#xff1a;著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 本文章对数据库概论实验一_求出一箱(每箱装100个)零件的重量 并将输出结果-CSDN博客文章浏览阅读2.7k次&#xff0c;点赞4次&#xff0c;收藏25次。实验数据库&#xff0c;表…

绿色能源发展关键:优化风电运维体系

根据QYResearch调研团队最新发布的《全球风电运维市场报告2023-2029》显示&#xff0c;预计到2029年&#xff0c;全球风电运维市场的规模将攀升至307.8亿美元&#xff0c;并且在接下来的几年里&#xff0c;其年复合增长率&#xff08;CAGR&#xff09;将达到12.5%。 上述图表及…

gerrit 搭建遇到的问题

1、启动Apache&#xff0c;端口被占用 : AH00072: make sock: could not bind to address (0S 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。: AH00072: make sock: could not bind to address 0.0.0.:443 a AH00451: no listening sockets available, shutti…

栈和队列相关题 , 用队列实现栈, 用栈实现队列 ,设计循环队列 C/C++双版本

文章目录 1.用队列实现栈2.用栈实现队列3. 设计循环队列 1.用队列实现栈 225. 用队列实现栈 思路&#xff1a; 使用两个队列&#xff0c;始终保持一个队列为空。 当我们需要进行压栈操作时&#xff0c;将数据压入不为空的队列中&#xff08;若两个都为空&#xff0c;则随便压…

关于STM32在代码中的而GPIO里面的寄存器(ODR等)不需要宏定义的问题

1.GPIO为什么需要宏定义地址 在 STM32 这样的微控制器中&#xff0c;硬件寄存器的地址是固定的并且特定于每个外设&#xff08;比如 GPIOA、GPIOB 等&#xff09;。为了方便代码访问这些硬件寄存器&#xff0c;我们通常会使用宏定义来指定每个外设的基地址。这样做有几个理由&a…

kimi智能助手,5大高阶玩法,95%的人还不知道

01 智能搜索:精准定位,一键获取最佳答案 Kimi,作为您的AI助手,拥有卓越的网络搜索能力。 我们能够迅速穿梭于信息海洋,为您筛选出五篇精选网络文章,并提供直接的网址链接。 Kimi的总结能力同样出色,特别适合那些追求效率、不愿深陷长篇文章的用户。 02 PDF速读:快速把…

关于数学建模的一些介绍

为了更好了解世界&#xff0c;我们可以通过数学来描述许多特定的现象&#xff0c;而数学模型就是现实世界的理想化&#xff0c;不过它永远不能完全精确地表示现实世界。 在这篇文章中&#xff0c;我将介绍一些数学建模的基本概念以及相应的基础知识&#xff0c;而关于更具体的…