항에 광고를 인쇄 "라인"파일의 라인을 포함하는 배열이다는 I이 부호화 소인
def show_line(self):
next_line = self.curr_line + 1
self.line = self.lines[self.curr_line]
y = self.line.split(' ')
z = self.lines[next_line].split(' ')
d1 = datetime.datetime.fromtimestamp(float(y[0]))
d2 = datetime.datetime.fromtimestamp(float(z[0]))
d3 = d2-d1
d3s = str(d3)
sleep_time = int(float(d3s[6::]))*1000
print_on_screen(self.line)
glib.timeout_add(sleep_time, self.show_line)
self.curr_line += 1
return False
은 (I는 readlines도 사용()). 이 두 줄의 각각에는 화면에 문자열 을 표시하는 데 사용되는 타임 스탬프가 두 개 (d3)의 차이에 따라 표시됩니다.
문제는 첫 번째 줄, 3 번째 줄, 5 번째 줄 등이 에 표시되고 타임 스탬프를 따르지 않는 것입니다. 제안 사항?
프랑코
실제로 위의 사항이 잘못되었습니다. 당신이하려고하는 것이 아니라 무엇이 잘못되었는지를 알려주는 것. –
glib.timeout_add에 대해 궁금합니다. 왜 이걸 쓰고 있니? 한 가지 문제는 제한 시간이 끝나면 self.showline 함수를 호출하므로 "self.curr_line + = 1"이 실행되지 않는다는 것입니다 ... – Tom97531
@ Tom97531이 잘못되었습니다. 'self.curr_line + = 1'과'return False' 라인은 가장 확실히 실행됩니다. 'glib.timeout_add' (혹은'gobject.timeout_add')가 호출되어서 함수의 나머지 부분이 실행되는 것을 막지 못합니다. – Celada