我是面向对象编程、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 update并label再次更改。
问题是无论我做什么都会发生以下情况之一:
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 …