因此,我正在尝试构建一个应用程序,使用 Pygame 以图形方式显示有关系统的一些信息。我试图显示的信息之一是系统中运行的操作系统进程列表,以及它们的 pid、名称和 CPU 使用百分比。问题是,当我尝试在 pygame 表面上显示它时,它会被截断,就好像试图将整个列表写入屏幕上的单个点一样。当尝试使用计数器将列表分布在屏幕上时,它会变成一条对角线。有什么办法可以正确显示这个列表吗?(另外,考虑到这是一个巨大的列表,是否有人知道一种根据列表的长度将其分成不同表面的方法?)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))
1 回答
BIG阳
TA贡献1859条经验 获得超6个赞
当尝试使用计数器将列表分布在屏幕上时,它会变成一条对角线。
造成这种效果的原因是您在内循环中增加了文本的垂直和水平位置。仅增加内循环中的水平位置。垂直位置必须在外循环中增加。在内部循环中,您必须迭代字典:
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
添加回答
举报
0/150
提交
取消