如何在Python应用中使用MDDataTable(Kivy)隐藏列
隐藏列的可行解决方法
直接移除目标列数据源
从你的column_data或列定义列表里删掉要隐藏的列项,这是最直接有效的方式,表格不会渲染该列:column_data=[("Date-Time", dp(25)), ("First Name", dp(25)), ("Last Name", dp(25)), # 删除"Record Number"对应的行 .... ]利用组件自带的可见性属性
很多UI框架的表格组件会提供visible这类控制列显示的参数,直接给目标列设置不可见标记:# 假设组件支持(列名, 宽度, 是否可见)的格式 column_data=[("Date-Time", dp(25), True), ("First Name", dp(25), True), ("Last Name", dp(25), True), ("Record Number", dp(25), False), # 设为不可见 .... ]自定义渲染逻辑跳过目标列
如果框架没有现成的隐藏属性,就在生成列的代码里判断并跳过目标列:def create_table_columns(column_data): columns = [] for col_info in column_data: name = col_info[0] if name == "Record Number": continue # 不渲染该列 # 正常创建列组件并添加到列表 column = ColumnComponent(name=name, width=col_info[1]) columns.append(column) return columns调整宽度相关参数(针对支持的框架)
若坚持用宽度设置,试试同时设置宽度和最小宽度为0,部分框架需要同时指定这两个参数才会彻底隐藏:width=[dp(25), dp(25), dp(25), dp(0)] min_width=[dp(0), dp(0), dp(0), dp(0)]
内容的提问来源于stack exchange,提问作者DMP
相关产品推荐
相关产品推荐

