PythonStudio 控件使用常用方式(二十三)TGridPanel

PythonStudio是一个极强的开发Python的IDE工具,官网地址是:https://glsite.com/ ,在官网可以下载最新版的PythonStudio,同时,在使用PythonStudio时,它也能及时为用户升到最新版本。它使用的是Delphi的控件,常用的内容是与Delphi一致的。但是相关文档并一定完整。现在我试试能否逐步把它的控件常用用法写一点点,也作为PythonStudio的参考。

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

TGridPanel是网格式面板,它与TFlowPanel一样,可以较快地进行布局,但与TFlowPanel不同,TFlowPanel是流式布局,当面板调整大小,控件会自动根据大小移动,而TGridPanel是网格式的,可以理解为,已定好一行有几列,当调整大小时,通常只是根据比例关系来在行内移动控件。

在这里插入图片描述

在这里插入图片描述
如图,当插入TGridPanel后,可以根据需要设置行、列数,图中设置了4行3列,然后在代码中设置各行、列的比例关系(也可以在对象检查器中设置,但是会相当麻烦),再将控件按顺序添加到面板中,即完成了操作。

组件位置

TGridPanel位于Additional下

使用方式

设置网格的行列数

将TGridPanel添加到窗体后,在对象树中,双击ColumnCollection和RowCollection,即可打开行、列的编辑窗口,添加或删除行列
在这里插入图片描述
也可以通过代码来添加行、列
代码为:

        # 添加列
        self.GridPanel1.ColumnCollection.Add()
        # 添加行
        self.GridPanel1.RowCollection.Add()

设置行高、列宽

默认情况下,新增加的行高、列宽均为0,通常建议是在代码中进行修改,但也可以在对象检查器中进行修改(需要足够的耐心)

对象检查器中修改

如果均分行,列,方法是:对新增行的SizeStyle保持默认的ssPercent,然后将Value设置为与前一行(列)相同的值,这个值为 100/(n-1)
如,对第三行进行设置,需要将其Value设置为100/2=50,对第四列进行设置为100/3=33.3333333

代码中修改

用以下代码直接对每行每列进行修改,行的总值 为100,列的总值 为100,如果不为100,会自动为你计算,以百分比形式进行换算,比如总共两列,分别为10和30,会自动按25和75进行设置。

    def __init__(self, owner):
        self.GridPanel1 = GridPanel(self)

        self.LoadProps(os.path.join(os.path.dirname(os.path.abspath(__file__)), "Unit1.pydfm"))

        self.GridPanel1.ColumnCollection[0].value=25
        self.GridPanel1.ColumnCollection[1].value=30
        self.GridPanel1.ColumnCollection[2].value=45

        self.GridPanel1.RowCollection[0].value=25
        self.GridPanel1.RowCollection[1].value=25
        self.GridPanel1.RowCollection[2].value=25
        self.GridPanel1.RowCollection[3].value=25

添加控件

虽然在对象检查器中有对ControlCollection属性进行设置的地方,但是由于这个属性是获取已有的控件的,而已有的控件是不允许加入到TGridPanel的,所以这个属性设置不能用,必须 通过代码设置
如:

        for i in range(12):
            btn=Button(self)
            btn.Name="btn" + str(i)
            btn.Parent=self.GridPanel1
            btn.Caption="aaa" +str(i)
            btn.Align=alClient

这段代码按顺序加入了12个按钮

行列的合并

在HTML中,有RowSpan和ColSpan,对行和列进行合并设置,在GridPanel中也有类似的设计,只是,建议只对列进行合并设置,不要对行进行合并设置。
注意:在设置前,需要先建立完控件
如果我们用以下代码进行设置

        self.GridPanel1.ColumnCollection[0].value=25
        self.GridPanel1.ColumnCollection[1].value=30
        self.GridPanel1.ColumnCollection[2].value=45

        self.GridPanel1.RowCollection[0].value=25
        self.GridPanel1.RowCollection[1].value=25
        self.GridPanel1.RowCollection[2].value=25
        self.GridPanel1.RowCollection[3].value=25

        for i in range(12):
            btn=Button(self)
            btn.Name="btn" + str(i)
            btn.Parent=self.GridPanel1
            btn.Caption="aaa" +str(i)
            btn.Align=alClient

        self.GridPanel1.ControlCollection[0].ColumnSpan=2
        self.GridPanel1.ControlCollection[0].RowSpan=2

先建立 了一个4*3的网格,并加入了12个按钮,再对第一行第一列进行2行2列的合并,会发现效果如下:
在这里插入图片描述
其中AAA0按钮的确是完成了两行两列的合并,但第aaa2和aaa3两个按钮重叠了,与AAA0在同一个网络中

如果仅对列进行合并,即:

self.GridPanel1.ControlCollection[0].ColumnSpan=2

效果为:
在这里插入图片描述
其余的属性还是比较简单,一眼就可以看明白,作为一个容器,其他也没有什么要注意的,有问题可以一起去硅量实验室的论坛 https://forum.glsite.com/进行讨论。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值