小编kos*_*kos的帖子

无法在 Python 3 + GTK+ 3 中初始化窗口并等待进程结束

我是面向对象编程、Python 和 GTK+3 的新手,尽管我对过程编程(主要是 C)有一定的了解。

我正在尝试构建一个简单的 Python + GTK+ 3 脚本以pkexec apt-get update在 Linux 下运行。

我有一个mainWindow类(基于Gtk.Window类),其中包含一个名为button(基于Gtk.Button类)的按钮对象,该对象触发在事件中new_update_window()定义的方法;mainWindowclicked

new_update_window()方法updateWindow从一个updateWindow类(基于一个Gtk.Window类)初始化一个对象,该类包含一个名为label(基于一个Gtk.Label类)的标签对象,并调用方法show_all()update()定义在updateWindow;

update()方法应该更改label,运行pkexec apt-get updatelabel再次更改。

问题是无论我做什么都会发生以下情况之一:

  • 如果我subprocess.Popen(["/usr/bin/pkexec", "/usr/bin/apt-get", "update"])直接运行,update.Window则显示但label立即设置为仅在pkexec apt-get update执行完成后才应设置的值;
  • 如果我subprocess.call(["/usr/bin/pkexec", "/usr/bin/apt-get", "update"])直接运行,update.Window …

linux subprocess python-3.x gtk3

5
推荐指数
1
解决办法
1113
查看次数

标签 统计

gtk3 ×1

linux ×1

python-3.x ×1

subprocess ×1