gpt4 book ai didi

ffmpeg - PyGTK ProgressBar 在子进程启动之前显示一些东西

转载 作者:行者123 更新时间:2023-12-04 23:27:36 31 4
gpt4 key购买 nike

我正在尝试获取 gtk.ProgressBar.set_text('Text')在启动我的 subprocess 之前单击按钮即可工作.

这是我的代码(完整源代码 here):

def on_button_clicked(self, button, progress_bar, filename):
self.execute(progress_bar, filename)

def execute(self, progress_bar, filename):
progress_bar.set_text('Encoding')
progress_bar.pulse()

cmd = ['ffmpeg', '-y',
'-i', filename,
'-r', '30',
'/tmp/test-encode.mkv']

process = sp.Popen(cmd, stdout=sp.PIPE, stderr=sp.PIPE)

process.wait()

progress_bar.set_text('Done')

我试过移动 progress_bar.set_text('Encoding')on_button_clicked()但这并没有改变任何东西:我单击按钮,工作完成(文件已​​正式生成并且确定),然后进度条才显示“完成”。

我做了功课并阅读了所有相关问题,但他们要么不使用 subprocess ,或解析“常规”命令输出。

最佳答案

只需添加

progress_bar.set_text('Encoding')

while gtk.events_pending(): # this forces GTK to refresh the screen
gtk.main_iteration()

on_button_clicked()强制 GTK 在继续之前刷新屏幕。

你甚至可以添加
progress_bar.set_text('Finished')
while gtk.events_pending(): # this forces GTK to refresh the screen
gtk.main_iteration()

execute一旦文件被写入。

关于ffmpeg - PyGTK ProgressBar 在子进程启动之前显示一些东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38012773/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com