Форум сайта python.su
Подскажите. Есть приложение на PyGTK
#!/usr/bin/python
# -*- coding: utf-8 -*-
import gtk
import subprocess
import os
import threading
win = gtk.Window()
def btn1_clicked(btn1):
subprocess.call('setup.sh',shell=True)
win.set_default_size(300, 50)
win.set_border_width(100)
win.connect('destroy', gtk.main_quit)
win.set_title('Driver setup')
txtvar = 'Установка драйверов модема SkyLink \n'
txt = gtk.Label(txtvar)
txt.show()
btn = gtk.Button('Выход')
btn.connect('pressed', lambda button: gtk.main_quit())
btn.show()
btn1 = gtk.Button('Запуск')
btn1.connect('clicked', btn1_clicked )
btn1.show()
box = gtk.HBox()
box.pack_start(txt)
box.pack_start(btn)
box.pack_start(btn1)
win.add(box)
win.add(box)
win.add(box)
box.show()
win.show()
gtk.main()
Отредактировано (Сен. 14, 2009 15:36:15)
Офлайн
викликати
nohup ./setup.sh &
Офлайн
Привет.
Вместо subprocess.call() используйте subprocess.Popen(). Об этом хорошо написано по-русски в книге ‘Python в системном администрировании UNIX и Linux’ Ноа Гифт, Джереми Джонс.
Вот рабочий код, проверил :):
#!/usr/bin/python
# -*- coding: utf-8 -*-
import gtk
import subprocess
win = gtk.Window()
def btn1_clicked(btn1):
gtk.main_quit()
subprocess.Popen('python setup_sh.py',shell=True)
win.set_default_size(300, 50)
win.set_border_width(100)
win.connect('destroy', gtk.main_quit)
win.set_title('Driver setup')
txtvar = 'Установка драйверов модема SkyLink '
txt = gtk.Label(txtvar)
txt.show()
btn = gtk.Button('Выход')
btn.connect('pressed', lambda button: gtk.main_quit())
btn.show()
btn1 = gtk.Button('Запуск')
btn1.connect('clicked', btn1_clicked )
btn1.show()
box = gtk.HBox()
box.pack_start(txt)
box.pack_start(btn)
box.pack_start(btn1)
win.add(box)
box.show()
win.show()
gtk.main()
#!/usr/bin/python
# -*- coding: utf-8 -*-
while True:
print 'Установка драйверов модема SkyLink '
Офлайн
Огромное спасибо две недели думал, а до subprocess.Popen('python setup_sh.py',shell=True) так и не додумался. Спасибо :)
Офлайн