Pygame:列表显示在表面中被截断
Pygame: list shown truncated in a surface
因此,我正在尝试构建一个应用程序来显示有关系统的一些信息,使用 Pygame 以图形方式显示它们。我试图显示的信息之一是系统中 os 个进程 运行 的列表,以及它们的 pid、名称和 cpu 使用百分比。问题是,当我尝试在 pygame 表面上显示它时,它被截断了,就好像试图将整个列表写入屏幕中的一个点一样。当尝试使用计数器将列表扩展到屏幕 acros 时,它变成了一条对角线。有什么方法可以正确显示此列表?
(另外,考虑到它是一个巨大的列表,有没有人知道一种方法可以根据列表的长度将它分成不同的表面?)
def processos_ativos():
listOfProcessNames = []
for proc in psutil.process_iter():
pInfoDict = proc.as_dict(attrs=['pid', 'name', 'cpu_percent'])
listOfProcessNames.append(pInfoDict)
for elem in listOfProcessNames:
#print(elem)
elem = str(elem)
horizontal = 0
vertical = 0
for i in elem:
text = font.render(i, 1, verde)
horizontal += 1
vertical += 1
tela.blit(text,(10*vertical,25*horizontal))
When trying to use counters to spread the list across the screen, it becomes a single diagonal line.
造成这个效果,是因为你在内部循环中增加了文本的垂直和水平位置。仅增加内循环中的水平位置。必须在外循环中增加垂直位置。在内部循环中,您必须遍历字典:
def processos_ativos():
listOfProcessNames = [proc.as_dict(attrs=['pid', 'name', 'cpu_percent']) for proc in psutil.process_iter()]
horizontal = 0
for dictionary in listOfProcessNames:
vertical = 0
for key in dictionary:
elem = dictionary[key]
text = font.render(elem, True, verde)
tela.blit(text,(10*vertical,25*horizontal))
vertical += 1
horizontal += 1
因此,我正在尝试构建一个应用程序来显示有关系统的一些信息,使用 Pygame 以图形方式显示它们。我试图显示的信息之一是系统中 os 个进程 运行 的列表,以及它们的 pid、名称和 cpu 使用百分比。问题是,当我尝试在 pygame 表面上显示它时,它被截断了,就好像试图将整个列表写入屏幕中的一个点一样。当尝试使用计数器将列表扩展到屏幕 acros 时,它变成了一条对角线。有什么方法可以正确显示此列表?
(另外,考虑到它是一个巨大的列表,有没有人知道一种方法可以根据列表的长度将它分成不同的表面?)
def processos_ativos():
listOfProcessNames = []
for proc in psutil.process_iter():
pInfoDict = proc.as_dict(attrs=['pid', 'name', 'cpu_percent'])
listOfProcessNames.append(pInfoDict)
for elem in listOfProcessNames:
#print(elem)
elem = str(elem)
horizontal = 0
vertical = 0
for i in elem:
text = font.render(i, 1, verde)
horizontal += 1
vertical += 1
tela.blit(text,(10*vertical,25*horizontal))
When trying to use counters to spread the list across the screen, it becomes a single diagonal line.
造成这个效果,是因为你在内部循环中增加了文本的垂直和水平位置。仅增加内循环中的水平位置。必须在外循环中增加垂直位置。在内部循环中,您必须遍历字典:
def processos_ativos():
listOfProcessNames = [proc.as_dict(attrs=['pid', 'name', 'cpu_percent']) for proc in psutil.process_iter()]
horizontal = 0
for dictionary in listOfProcessNames:
vertical = 0
for key in dictionary:
elem = dictionary[key]
text = font.render(elem, True, verde)
tela.blit(text,(10*vertical,25*horizontal))
vertical += 1
horizontal += 1