使用 Gtk 在列表中显示列表
Display list in a list with Gtk
所以我在列表中有一个列表看起来像
[('9/13/2021', 2.0, '7:15', 'Hill'),
('9/14/2021', 8.0, '6:0', 'Tempo'),
('9/14/2021', 4.0, '6:0', 'Tempo')]
并且我知道如何将它打印出来以使其看起来不错,但我试图让它在 Gtk 中显示,并且它打印到显示器中看起来像这样:
我正在寻找一种方法让它打印出去掉括号、逗号和引号但仍在同一行的地方。
我打印到的方式是这样的:
items = self.read_from_db()
# lists through the items pulled and adds them to the
# list of reminders displayed
for item in items:
self.listbox_2.add(ListBoxRowWithData(item))
其中 read_from_db()
returns 列表中的列表。有什么想法吗?
这是 ListBoxRowWithData class:
class ListBoxRowWithData(Gtk.ListBoxRow):
def __init__(self, data):
super().__init__()
self.data = data
self.add(Gtk.Label(label=data))
Items output:
[('9/13/2021', 2.0, '7:15', 'Hill'), ('9/14/2021', 8.0, '6:0', 'Tempo'), ('9/14/2021', 4.0, '6:0', 'Tempo')]
目前标签文本是列表的字符串表示形式。要将列表连接成字符串,可以使用字符串的 .join
。
self.listbox_2.add(ListBoxRowWithData(" ".join([str(x) for x in item])))
.join
仅当列表中的所有项都是字符串时才有效,因此 [str(x) for x in item]
列表理解会将每个列表项转换为字符串。然后使用 space 连接这些项目,但如果您愿意,可以使用不同的连接字符串。
所以我在列表中有一个列表看起来像
[('9/13/2021', 2.0, '7:15', 'Hill'),
('9/14/2021', 8.0, '6:0', 'Tempo'),
('9/14/2021', 4.0, '6:0', 'Tempo')]
并且我知道如何将它打印出来以使其看起来不错,但我试图让它在 Gtk 中显示,并且它打印到显示器中看起来像这样:
我正在寻找一种方法让它打印出去掉括号、逗号和引号但仍在同一行的地方。
我打印到的方式是这样的:
items = self.read_from_db()
# lists through the items pulled and adds them to the
# list of reminders displayed
for item in items:
self.listbox_2.add(ListBoxRowWithData(item))
其中 read_from_db()
returns 列表中的列表。有什么想法吗?
这是 ListBoxRowWithData class:
class ListBoxRowWithData(Gtk.ListBoxRow):
def __init__(self, data):
super().__init__()
self.data = data
self.add(Gtk.Label(label=data))
Items output:
[('9/13/2021', 2.0, '7:15', 'Hill'), ('9/14/2021', 8.0, '6:0', 'Tempo'), ('9/14/2021', 4.0, '6:0', 'Tempo')]
目前标签文本是列表的字符串表示形式。要将列表连接成字符串,可以使用字符串的 .join
。
self.listbox_2.add(ListBoxRowWithData(" ".join([str(x) for x in item])))
.join
仅当列表中的所有项都是字符串时才有效,因此 [str(x) for x in item]
列表理解会将每个列表项转换为字符串。然后使用 space 连接这些项目,但如果您愿意,可以使用不同的连接字符串。