wxpython 比较完整的树控件

这篇博客介绍了如何使用wxpython进行树控件的增删改功能。内容包括界面展示、功能描述和程序代码。用户可以通过单击、双击或右键菜单操作树形结构,数据存储于sqlite数据库,支持编辑和保存。
摘要由CSDN通过智能技术生成

树控件的增删改

界面展示

树形控件的增删改

功能描述

  • 单击树控件,在右侧显示该项目的名称等信息;
  • 双击项目前的 + 或者 - ,可以折叠或者打开该节点;
  • 右键点击项目,弹出菜单,可以:增加同级、增加下级、删除项目;
  • 默认项目信息为只读状态。点击 编辑、保存 按钮可以作相应操作;
  • 程序数据来自 sqlite数据库,在DataBase类中,可以创建表并插入初始数据(可以不插入初始化数据)。

程序代码

import wx
import sqlite3


class DataBase:
    """演示数据库"""

    def __init__(self):
        self.conn = sqlite3.connect('MyData.db')
        self.cur = self.conn.cursor()

    def create_table_type(self, drop_exit=False):
        """创建产品类别表"""
        table = 'base_goods_type'
        sql_text = f"""create table {
     table} (
                    编号 int primary key not null,
                    名称 varchar(20) not null,
                    描述 varchar(50),
                    上级编号 int not null,
                    ABC分类 char(1) default '');           
                    """
        if drop_exit:
            self.cur.execute(f"drop table {
     table}")
        self.cur.execute(sql_text)
        self.conn.commit()
        return True

    def init_table_type(self):
        rows = ((1001, '电动自行车', '', 0, 'A'),
                (1002, '普通自行车', '', 0, 'A'),
                (1003, '车辆配件', '', 0, 'B'),
                (1004, '其他产品', '', 0, 'C'),
                (1005, '普通电动自行车', '', 1001, 'A'),
                (1006, '电动滑板车', '', 1001, 'A'),
                (1007, '电动摩托车', '', 1001, 'A'),
                (1008, '通勤自行车', '', 1002, 'A'),
                (1009, '山地自行车', '', 1002, 'A'),
                (1010, '公路自行车', '', 1002, 'A'),
                (1011, '维修配件', '', 1003, 'B'),
                (1012, '改装配件', '', 1003, 'B'),
                (1013, '其他配件', '', 1003, 'B'),
                (1014, '锁具', '', 1004, 'C'),
                (1015, '个人防护', '', 1004, 'C'))
        table = 'base_goods_type'
        self.cur.execute(f"delete from {
     table};")
        self.conn.commit()
        return self.insert_rows(table, rows)

    def get_data(self, table, condition=None):
        if condition:
            sql_text = f"select * from {
     table} where {
     condition};"
        else:
            sql_text = f"select * from {
     table};"
        self.cur.execute(sql_text)
        return self.cur.fetchall()

    def get_max_id(self, table, pk_name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值