PythonStudio 控件使用常用方式(十四)TCheckListBox

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

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

TCheckListBox是一个检查清单框,可以理解为是一个条目复选框的组合,正常情况大概样子如下图

组件位置

位于Additional下

常用属性和方法

AllowGrayed属性

如果是False,则只能对条目打勾或不打勾两态,如果True,则可以为打勾,不打勾,灰色,三态

State属性

每一个条目的值 可以通过 self.CheckListBox1.State[0]来获得。

State属性可以设置,也可以获取,三个状态时的值 分别是:

  • 打勾时,值 为cbChecked
  • 未打勾时,值 为cbUnchecked
  • 灰色时,值 为cbGrayed

举个例子,输入以下代码,可以初始化CheckListBox

python 复制代码
    def Button1Click(self, Sender):
        # 允许三态
        self.CheckListBox1.AllowGrayed=True
        # 添加选项
        self.CheckListBox1.Items.Add("身份证")
        self.CheckListBox1.Items.Add("钥匙")
        self.CheckListBox1.Items.Add("手机")
        self.CheckListBox1.Items.Add("充电宝")
        # 设置状态
        self.CheckListBox1.State[0]="cbChecked"
        self.CheckListBox1.State[1]="cbGrayed"

如下图

Checked属性

判断条目是否被打勾,它的语法是

python 复制代码
self.CheckListBox1.Checked[0]

如果是打勾了,它才返回True,其他两个状态都返回False

Selected属性与ItemIndex

注意,这个是判断条目是否被选中,它的语法是

python 复制代码
self.CheckListBox1.Selected[0]

无论打勾了还是其他两个状态,只要它被选中,都返回True

同样,用ItemIndex可以获取当前被选中的条目的索引

python 复制代码
ShowMessage(self.CheckListBox1.ItemIndex)

ItemEnabled属性和Enabled

众所周知的Enabled是整个控件能否使用

ItemEnabled是单个条目是否可用,如果禁用第三个条目,它的语法是

python 复制代码
self.CheckListBox1.ItemEnabled[2]=False

同样,也可以读取这个属性。

Item属性

Item可以添加、插入、删除、移动条目

python 复制代码
# 添加
self.CheckListBox1.Items.Add("身份证")
# 插入
self.CheckListBox1.Items.Insert(0,"在第0个位置插入一条")
# 删除
self.CheckListBox1.Items.Delete(0)
# 移动 从第0项移到第2项
self.CheckListBox1.Items.Move(0,2)

GetCount方法

GetCount是取得所有条目的总数

通过这个方法,可以通过遍历所有条目,来获取已选中的条目列表

比如:

python 复制代码
    def Button2Click(self, Sender):
        lst=[]
        for i in range(self.CheckListBox1.GetCount()):
            if self.CheckListBox1.Checked[i]:
                lst.append(self.CheckListBox1.Items[i])
        ShowMessage("\n".join(lst))

OnClickCheck方法

如果给一个条目打勾或取消,会触发这个事件,可以用这个事件来写一些类似验证等扩展代码。

相关推荐
AIAdvocate14 分钟前
Pandas_数据结构详解
数据结构·python·pandas
小言从不摸鱼16 分钟前
【AI大模型】ChatGPT模型原理介绍(下)
人工智能·python·深度学习·机器学习·自然语言处理·chatgpt
FreakStudio2 小时前
全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
python·嵌入式·面向对象·电子diy
redcocal3 小时前
地平线秋招
python·嵌入式硬件·算法·fpga开发·求职招聘
artificiali4 小时前
Anaconda配置pytorch的基本操作
人工智能·pytorch·python
RaidenQ4 小时前
2024.9.13 Python与图像处理新国大EE5731课程大作业,索贝尔算子计算边缘,高斯核模糊边缘,Haar小波计算边缘
图像处理·python·算法·课程设计
花生了什么树~.4 小时前
python基础知识(六)--字典遍历、公共运算符、公共方法、函数、变量分类、参数分类、拆包、引用
开发语言·python
Trouvaille ~5 小时前
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
图像处理·python·机器学习·numpy·信号处理·时间序列分析·科学计算
爆更小小刘5 小时前
Python基础语法(3)下
开发语言·python
哪 吒5 小时前
华为OD机试 - 第 K 个字母在原来字符串的索引(Python/JS/C/C++ 2024 E卷 100分)
javascript·python·华为od