PythonStudio 控件使用常用方式(十五)TValueListEditor

PythonStudio是一个极强的开发Python的IDE工具,它使用的是Delphi的控件,常用的内容是与Delphi一致的。但是相关文档并一定完整。现在我试试能否逐步把它的控件常用用法写一点点,也作为PythonStudio的参考。

从1.2.1版开始,PythonStudio又增加了很多新的控件。

TValueListEditor从文字来看,是一个键值组的列表,其实在窗体设计器中的对象检查器就是一个键值组的列表
在这里插入图片描述
除了这样的属性-值对以外,也可以用这个控件来完成比如团队任务列表等功能,比如:
在这里插入图片描述
这个组件说是键值对,事实上和真正的KEY-VALUE还是有区别的,它可以使用重复的KEY。

组件位置

位于Additional下

常用属性和方法

常用的属性包括外观属性和内容属性
外观属性包括:

ColCount 和 ColWidth

事实上,这个控件可以设置多列的,但是在实际使用中,在第一屏显示时,只会显示第1和第2列,其余列需要通过滚动条才能看到,同时,代码中只允许对第1、2两列进行标题和内容的设置,所以一般情况下,不建议修改ColCount.

ColWidth可以设置每一列的宽度,但同样由于上述原因,只建议修改第一列的宽度,即ColWidth[0],这个值是以像素为单位的。

RowHeight

这个是行高,标题行为第一行,用RowHeight[0]来设置,其余行依此类推。

DisplayOptions

这个属性可以直接在对象检查器中设置,当分别设置为True时,会有以下显示

  • doColumnTitles:标题行固定
  • doAutoColResize:调整控件大小时,各列的宽度自动调整
  • doKeyColFixed:调整控件大小时,只有第二列调整宽度

Options

该属性值是一个集合类型,元素说明如下。
goFixedVertLine:表格中固定列的垂直滚动条被画,
goFixedHorzLine:表格中固定行的水平滚动条被画。
goVertLine:在表格中绘制垂直线。
goHorzLine:在表格中绘制水平线。
goRangeSelect:用户能够同时选中多个单元格区域,如果Options属性包含goEditing选项,
goRangeSelect将被忽略。
goDrawFocusSelected:当单元格被选中时,将高亮显示。
goRowSizing:行能够被单独地调整大小。
goColSizing:列能够被单独地调整大小。
goRowMoving:非固定行能够通过鼠标移动。
goColMoving:非固定列能够通过鼠标移动。
goEditing:用户能够编辑单元格。如果Options属性包含该选项,则goRangeSelect不起作用。
goTabs:用户按Tab键或Shift+Tab键能够使焦点在单元格间移动。
goRowSelect:表格整行被选中。如果Options属性包含该选项,则goAlwaysShowEditor不起作用。
goAlwaysShowEditor:表格被锁定为编辑状态。用户在输入数据时,不需要按F2或Enter键便可以使表格处于编辑状态。如果Options选项不包含goEditing,该选项不起作用;如果Options包含goRowSelect,该选项也不起作用。
goThumbTracking:当用户拖动滚动块时,更新表格,否则,表格不被更新,直到用户释放拖动的滚动块。

内容属性和方法常用的是

TitleCaptions

这个是标题,第一列为TitleCaption[0]
列标题也可以直接在对象检查器里进行设置
在这里插入图片描述

KeyOptions

这个可以在对象检查 器中进行设置,主要对于第一列(Key列)进行约束
如果分别设置为True,将会有以下功能

  • keyEdit:允许编辑
  • keyAdd:允许添加(在操作时,需要使用 键盘向下键 ,就可以添加行了)
  • keyDelete:允许删除(实际上没有操作方法)
  • keyUnique:键值 不允许重复

InsertRow方法

插入键值对,语法是 InsertRow(键,值,True)
以上的内容可以用一段代码来演示

        # 第一列的宽度
        self.ValueListEditor1.ColWidths[0]=60

        # 每列的列名
        self.ValueListEditor1.TitleCaptions[0]='姓名'
        self.ValueListEditor1.TitleCaptions[1]='任务'

        # 插入内容
        self.ValueListEditor1.InsertRow("李四","打扫卫生",True)
        self.ValueListEditor1.InsertRow("王五","开车",True)

        # 设置行高
        for i in range(self.ValueListEditor1.RowCount):
            self.ValueListEditor1.RowHeights[i-1]=25

在这里插入图片描述

Keys和Values

设定第一列的值,注意,它只能修改或读取已有行的键名,不能超过行数

		# 修改第3行的键名(第3行必须存在)
        self.ValueListEditor1.Keys[2]="姓名"

Values也一样,不多说了。

Cells

Cells属性与Excel中Vba的单元格是相反的,是先列再行,可以读取也可以设置

        # 显示第1列第2行的值
        ShowMessage(self.ValueListEditor1.Cells[0,1])
        # 修改第2列第3行的值
        self.ValueListEditor1.Cells[1,4]="烧饭"

Strings

这个是最简单的设置行内容 的方法,直接可以通过“key=value”的方式来进行设置

        # 每列的宽度
        self.ValueListEditor1.ColWidths[0]=60

        # 每列的列名
        self.ValueListEditor1.TitleCaptions[0]='项目'
        self.ValueListEditor1.TitleCaptions[1]='内容'

        # 添加行
        for i in range(4):
            self.ValueListEditor1.InsertRow(i,"",True)
            # 设置行高
            self.ValueListEditor1.RowHeights[i]=25

        # 修改键列
        self.ValueListEditor1.Strings[0]="姓名=张三"
        self.ValueListEditor1.Strings[1]="性别=男"
        self.ValueListEditor1.Strings[2]="年龄=25"
        self.ValueListEditor1.Strings[3]="籍贯=浙江"

在这里插入图片描述
用Strings时要注意,直接输入“姓名=张三”,它直接认为等号前后是字符。

Col与Row

读取当前焦点的列、行值

ItemProps

对值列进行下拉框选择或设置,从而防止非法输入

-下拉框

        # 第二行 下拉选择
        self.ValueListEditor1.ItemProps[1].PickList.Add("米饭")
        self.ValueListEditor1.ItemProps[1].PickList.Add("流质")
        self.ValueListEditor1.ItemProps[1].PickList.Add("半流质")
        self.ValueListEditor1.ItemProps[1].PickList.Add("不订餐")

在这里插入图片描述

  • 带格式编辑
    这一功能可以使用TMaskEdit中的掩码来进行编辑
		# 设置日期掩码
        self.ValueListEditor1.ItemProps[0].EditMask="0000年90月90日"

在这里插入图片描述

  • 最长输入字符数
        self.ValueListEditor1.ItemProps[0].MaxLength=5

  • 只读
        self.ValueListEditor1.ItemProps[0].ReadOnly=True

RowCount

读取控件中的行数

DeleteRow方法

这个是方法,所以语法是 DeleteRow(行号),千万不要写成DeleteRow[行号]

事件

有几个事件可以注意使用

OnStringsChange

在第二列数据变化后触发

OnStringsChanging

在第二列数据变化时触发

其他事件都可以理解,不多说了。

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值