如何为JustPy QTable中符合条件的行设置自定义样式(如红/加粗)
为JustPy QTable的特定行设置条件样式
现有创建表格及添加行的代码:
some_table = jp.QTable( hide_bottom=True, title=f'Some Table Title', data=[], columns=some_table_columns, a=some_table_div, dense=True, style="margin-bottom:25px" ) for some_item in some_item_str_list: new_row = {"name": some_item} some_table.data.append(new_row)
方案1:在数据行中直接嵌入样式
添加行时根据条件为行数据添加_style(内联样式)或_class(CSS类)字段,JustPy会自动将样式应用到对应行:
for some_item in some_item_str_list: new_row = {"name": some_item} if some_item == "value1": # 直接设置内联样式:文字变红+加粗 new_row["_style"] = "color: red; font-weight: bold;" # 也可以用CSS类(需提前定义样式) # new_row["_class"] = "highlight-row" some_table.data.append(new_row)
如果使用CSS类,需要在页面中添加样式定义:
jp.add_style(""" .highlight-row { color: red; font-weight: bold; } """)
方案2:用row_classes函数动态生成样式类
适合复杂条件判断场景,创建表格时绑定一个函数,根据每行数据返回对应的样式类:
- 先定义全局样式:
jp.add_style(""" .highlight-row { color: red; font-weight: bold; } """)
- 创建表格时指定
row_classes参数:
def get_row_classes(row_data, index): # 根据行数据的name字段判断 if row_data["name"] == "value1": return "highlight-row" # 不符合条件返回空字符串 return "" some_table = jp.QTable( hide_bottom=True, title=f'Some Table Title', data=[], columns=some_table_columns, a=some_table_div, dense=True, style="margin-bottom:25px", row_classes=get_row_classes # 绑定行样式类生成函数 )
- 添加行的代码无需修改,表格会自动为符合条件的行应用样式。
内容的提问来源于stack exchange,提问作者Przemysław Kalita
相关产品推荐
相关产品推荐

