You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gtk中展示嵌套列表数据并去除括号引号等多余符号

问题原因

你目前的实现直接将元组类型的data传给了Gtk.Label的label参数,Gtk会自动调用元组的字符串序列化方法,所以会把Python语法里的括号、引号、逗号都作为内容展示出来。

修复方案

只需要修改ListBoxRowWithData类的实现,先把元组内的元素按你需要的格式拼接成纯字符串,再传给Label即可。

最简实现(空格分隔)

如果你只需要去除多余符号,所有内容在同一行用空格分隔,可直接用如下代码:

class ListBoxRowWithData(Gtk.ListBoxRow):
    def __init__(self, data):
        super().__init__()
        self.data = data
        # 把元组所有元素转字符串后用空格拼接,也可以替换为你想要的分隔符如" | "
        show_text = " ".join(str(item) for item in data)
        self.add(Gtk.Label(label=show_text))

优化实现(列对齐)

如果想要展示效果更规整,列与列对齐,可以用格式化字符串给每个字段分配固定宽度:

class ListBoxRowWithData(Gtk.ListBoxRow):
    def __init__(self, data):
        super().__init__()
        self.data = data
        # 按字段类型分配固定宽度,<表示左对齐,数字表示占位宽度,.1f表示保留1位小数
        show_text = f"{data[0]:<12} {data[1]:<4.1f} {data[2]:<6} {data[3]}"
        self.add(Gtk.Label(label=show_text))

内容的提问来源于stack exchange,提问作者greenbug

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:54:03