首页/文章/ 详情

ABAQUS GUI设计|包罗万象的表格控件AFXTable

1年前浏览3727

暮色深沉,银白色的月光洒在窗户边,时不时从屋里传来手忙脚乱的键盘声响。原来是AFXTextField正在输入大量的数据进行交互,全然不知AFXTable站在了其身旁。AFXTable好奇的问道,“你在干什么?”。AFXTextField吓了一跳,不耐烦回答道,“别打扰我,我正在输入材料信息、铺层信息、角度、积分点、坐标等信息,数据参数多,着实麻烦。”AFXTable随即轻蔑一笑,“鄙人出手,麻烦立走”。闻讯,AFXTextField突然停了下来,不敢相信自己的耳朵,毕竟自己是数据交互扛把子的角色存在,不相信有人比自己还强,于是带着怀疑的眼光打开了百度,竟然一无所获,接着打开了百晓生兵器谱——ABAQUS帮助文档,随着AFXTable身世逐渐浮出水面……

AFXTable控件有着十分丰富的功能,能够便利地设置多参数模型,例如复合材料的设置,十分便利,这是文本框无法比拟的。

         


AFXTable语法如下:



AFXTable(p, numVisRows, numVisColumns, numRows, numColumns,    tgt=None, sel=0, opts=AFXTABLE_NORMAL,x=0, y=0, w=0, h=0,    pl= DEFAULT_MARGIN, pr=DEFAULT_MARGIN,pt=DEFAULT_MARGIN, pb=DEFAULT_MARGIN)


参数说明:

p:parent,需要使用FXVerticalFrame作为表格控件的父类;

numVisRows:可见的行数

numVisColumns:可见的列数

numRows:表格的行数

numColumns:表格的列数

tgt:表格控件的目标,用于关联表格控件的关键词AFXTableKeyword,带有选择器sel=0。

例:创建一个6×4的表格。


代码如下:
























GroupBox_1 = FXGroupBox(p=self, text='Title', opts=FRAME_GROOVE|LAYOUT_FILL_X)vf = FXVerticalFrame(GroupBox_1, FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_X,            0,0,0,0, 0,0,0,0)vf.setSelector(99)table = AFXTable(vf, 6, 4, 6, 4, form.FTableKw, 0, AFXTABLE_EDITABLE|LAYOUT_FILL_X)#将第一行设置为首行table.setLeadingRows(1)##将第一列设置为首列table.setLeadingColumns(1)#设置表格宽度table.setColumnWidth(1, 100)#设置表格每列数据的类型table.setColumnType(1, AFXTable.FLOAT)table.setColumnWidth(2, 100)table.setColumnType(2, AFXTable.FLOAT)table.setColumnWidth(3, 100)table.setColumnType(3, AFXTable.INT)#设置首行标题table.setLeadingRowLabels('X\tY\tAngle')table.setStretchableColumn( table.getNumColumns()-1 )#显示列表网格线table.showHorizontalGrid(True)table.showVerticalGrid(True)


1.Justification

可设置列表数据在列表中的位置。



setColumnJustify(column, justify)setItemJustify(row, column, justify)


justify可选项有:

      


#设置所有列表数据居中table.setColumnJustify(-1,AFXTable.CENTER)

         

2.Spanning

语法:

Row,column:起始行、列

NumRows,numColumns:合并的行数和列数

例:合并首行的第二列至第四列




table.setItemSpan(0,1,1,3)table.setLeadingRowLabels(‘Coordinates’)table.setLeadingRowLabels('X\tY\tAngle')
3.List type          

例:给列表设置一个列表属性,例如复合材料角度的设置。

         




listId = table.addList('0\t45\t-45\t90')table.setColumnType(3,AFXTable.LIST)table.setColumnListId(3,listId)


4.Color type

例:给列表4行2列设置颜色背景





table.setItemTextColor(4,1,'Black')table.setItemBackColor(4,1,'Red1')#使用RGB来定义颜色Table.setItemBackColor(4,2,FXRGB(255,100,100))

       

5.Boolean type:

如果想让用户定义表格中的数据要么为真要么为假,则需要将表格属性设置为BOOL















table=AFXTable(vf,6,2,6,2,form.FTableKw,0,AFXTABLE_EDITABLE|LAYOUT_FILL_X)   table.setPopupOptions(AFXTable.POPUP_CUT|AFXTable.POPUP_COPY|AFXTable.POPUP_PASTE|AFXTable.POPUP_INSERT_ROW|AFXTable.POPUP_DELETE_ROW|AFXTable.POPUP_CLEAR_CONTENTS|AFXTable.POPUP_READ_FROM_FILE|AFXTable.POPUP_WRITE_TO_FILE)table.setLeadingRows(1)table.setColumnWidth(0100)table.setColumnType(0, table.BOOL)table.setColumnWidth(1100)table.setColumnType(1, AFXTable.TEXT)# table.setColumnWidth(3, 100)# table.setColumnType(3, AFXTable.INT)table.setColumnJustify(-1,AFXTable.CENTER)# table.setItemSpan(0,1,1,3)table.setLeadingRowLabels('Nlgeom\tStep')table.setStretchableColumn( table.getNumColumns()-1 )table.showHorizontalGrid(True)table.showVerticalGrid(True)

6.Editing
设置列表数据的可编辑性。


setColumnEditable(column, True|False)setItemEditable(row, column, True|False)     

看罢,AFXTextField深深吸了一口气,暗自竖起了大拇指。针对列表的操作,表格控件内容非常丰富,有上百种功能函数,更多功能可在<<GUI Toolkit Reference>>里查看,趁着AFXTable不注意,AFXTextField悄悄点了一个收藏。


来源:仿真社
复合材料兵器材料
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-05-11
最近编辑:1年前
仿真社
硕士 ABAQUS/LS-DYNA探索者
获赞 202粉丝 513文章 90课程 5
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈