因此,我正在嘗試構建一個應用程序,使用 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
提交
取消