7个方便快速使用的Tkinter控件源码分享,赶快收藏

7个快速使用的Tkinter控件源码分享

备注说明:

  1. 组合功能部件库界面设计基于place的布局方法, 集成了位置布局以及部件大小设置
  2. 样式基于ttkbootstrap美化库,不了解的可以查看:Tkinter美化皮肤ttkbootstrap介绍

1. 按钮 Button

  • 按钮设计需要有按钮的样式名称布局按钮的大小,以及点击按钮后的事件函数
  • 源码:
import ttkbootstrap as tkbot
from ttkbootstrap.constants import *

class ClickButton(tkbot.Frame) :
    """
    style : 样式 "success-outline"   
                 "info-outline"
    name : 开关按钮名字
    PositionX : 摆放位置 横向距离
    PositionY : 摆放位置 纵向距离
    ButtonWidth : 按钮长度 名字4字符长度需要100
    ButtonHeight : 按钮宽度
    CallBack : 回调函数, 点击后执行该函数
    """
    def __init__(self, master=None, 
                style="success-outline", 
                name = "点击按钮",
                PositionX = 20,
                PositionY = 20,
                ButtonWidth = 100,
                ButtonHeight = 30,
                CallBack = None,
                ):
        super().__init__(master)
        self.CreateButton = None
        self.CreateApp(master, style, name, PositionX, PositionY, ButtonWidth, ButtonHeight, CallBack)

    def CreateApp(self, master, style, name, PositionX, PositionY, ButtonWidth, ButtonHeight, CallBack) :
        self.CreateButton = tkbot.Button(master, text = name, bootstyle = style, command = CallBack)
        self.CreateButton.place(x = PositionX,  y = PositionY, 
                                width = ButtonWidth, height = ButtonHeight)
    
    def GetCreateButton(self):
        """
        得到点击按钮对象
        """
        return self.CreateButton

if __name__ == "__main__" :
    root = tkbot.Window()
    root.title("组合部件库")
    root.geometry("800x400")
    root.resizable(0, 0) # 窗口大小固定死
    
    def ClickButtonCallBackFun():
        print("点击了按钮: 点我")

    def ClickButtonCallBackFun1():
        print("点击了按钮:触发")
        
    ClickButtonApp1 = ClickButton(root, 
                style="success-outline", 
                name = "点我",
                PositionX = 40,
                PositionY = 20,
                ButtonWidth = 100,
                ButtonHeight = 30,
                CallBack = ClickButtonCallBackFun)
    
    ClickButtonApp2 = ClickButton(root, 
            style="info-outline", 
            name = "触发",
            PositionX = 40,
            PositionY = 80,
            ButtonWidth = 100,
            ButtonHeight = 30,
            CallBack = ClickButtonCallBackFun1)
    root.mainloop()
  • 显示效果:
    在这里插入图片描述

2. 开关 Checkbutton

  • 开关按钮设计需要有按钮的样式名称布局按钮的大小,以及点击按钮后的事件函数,在事件函数中,获取到开关的状态,即是还是
    -源码:
import ttkbootstrap as tkbot
from ttkbootstrap.constants import *

class OpenCloseButton(tkbot.Frame) :
    """
    style : 样式 矩形 "success-square-toggle"   
                椭圆  "success-round-toggle"
    name : 开关按钮名字
    PositionX : 摆放位置 横向距离
    PositionY : 摆放位置 纵向距离
    ButtonWidth : 按钮长度 名字4字符长度需要100
    ButtonHeight : 按钮宽度
    CallBack : 回调函数, 参会为开关状态变量
    """
    def __init__(self, master=None, 
                style="success-square-toggle", 
                name = "开关按钮",
                PositionX = 20,
                PositionY = 20,
                ButtonWidth = 150,
                ButtonHeight = 30,
                CallBack = None,
                ):
        super().__init__(master)
        self.OpenCloseVar = tkbot.BooleanVar()
        self.CreateButton = None
        self.CallBack = CallBack
        self.CreateApp(master, style, name, PositionX, PositionY, ButtonWidth, ButtonHeight, CallBack)

    def CreateApp(self, master, style, name, PositionX, PositionY, ButtonWidth, ButtonHeight, CallBack) :
        self.CreateButton = tkbot.Checkbutton(master, text=name, bootstyle=style, 
                                           variable=self.OpenCloseVar,
                                           command= lambda x = self.OpenCloseVar : CallBack(x))
        self.CreateButton.place(x = PositionX, 
                                y = PositionY, 
                                width = ButtonWidth,
                                height = ButtonHeight, 
                                anchor = W)
    
    def updateButton(self):
        """
        更新设置button设置
        """
        self
  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
【资源说明】 基于Python Tkinter的学生管理系统源码(怎删改查、点名等)+sql数据库+项目说明.zip 基于Python Tkinter的学生管理系统,有最基本的增删改查功能,还有随机点名、顺序点名功能 1、研究现状综述 目前,在学生信息管理领域,各大高校面临的难题在于对学生信息管理的效率过低,传统的人工管理造成了资金和劳动力的浪费。因此,大部分学者研究的是针对高校的学生信息或成绩管理系统,而用python语言的也很少,其中大多用的是PyQt5模块。而且,针对低年级小学生的具有点名功能的学生管理系统基本没有。 2、可行性分析 根据市场上所具有的学生管理系统得,目前市面上的学生管理系统大多是具有增删查改等几部分内容,所面向的群体是中高校的教师群体,最主要的功能是教师方便管理学生的信息。而本设计是面向小学低年级学生的管理系统,其中最重要的功能是随机点名,顺序点名功能等,其目的是增加教师上课时的趣味性,激发学生们回答问题的兴趣。 3、重点/思路 - 连接数据库。使用第三方工具Navicat连接MySQL。 - 创建student表 - python连接数据库 - 主页设计。使用Tkinter. - 点名系统时学生姓名名单的加载实现。 - 点名系统模式切换实现。通过if语句赋值判断模式。 - 点名抽取历史查看实现。先定义一个空列表,然后将取得的学生姓名加载到空列表即可。 4、实现 # 4.1 在MySQL中新建数据库和数据表 新建students_db数据库: ```mysql CREATE DATABASE students_db CHARACTER SET utf8 COLLATE utf8_general_ci; ``` 新建students数据表存放学生信息,有学号,姓名,年龄,性别,电话字段: ```mysql CREATE TABLE students ( id VARCHAR(4) NOT NULL, name VARCHAR(20) NOT NULL, age INT NOT NULL, gender VARCHAR(2) NOT NULL, phone VARCHAR(20) NOT NULL, PRIMARY KEY (id) ); ``` 新建user用户表,存放登录用户信息,有自增id、账号、密码三个字段: ```mysql CREATE TABLE User ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(255) UNIQUE NOT NULL, password_hash VARCHAR(32) NOT NULL ); ``` 新建history表,存放点名记录,有自增id、点名日期、姓名三个字段: ```mysql CREATE TABLE history ( id INT NOT NULL AUTO_INCREMENT, date DATE NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY (id) ); ``` 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

园长QwQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值