Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 14, 2009 15:21:12

MaXvAnDl
От:
Зарегистрирован: 2009-09-14
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по PyGTK

Подскажите. Есть приложение на 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()
Хочется сделать чтобы по нажатию на кнопку Запуск скрипт setup.sh продолжал работать, а приложение завершило работу (надо чтобы окошко закрылось без завершения скрипта).



Отредактировано (Сен. 14, 2009 15:36:15)

Офлайн

#2 Сен. 14, 2009 17:50:09

clopomor
От:
Зарегистрирован: 2007-06-12
Сообщения: 154
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по PyGTK

викликати
nohup ./setup.sh &



Офлайн

#3 Сен. 14, 2009 18:07:15

gmorgunov
От:
Зарегистрирован: 2008-10-15
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по PyGTK

Привет.
Вместо 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()
Где, setup_sh.py:
#!/usr/bin/python
# -*- coding: utf-8 -*-
while True:
print 'Установка драйверов модема SkyLink '



Офлайн

#4 Сен. 14, 2009 19:01:24

MaXvAnDl
От:
Зарегистрирован: 2009-09-14
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по PyGTK

Огромное спасибо две недели думал, а до subprocess.Popen('python setup_sh.py',shell=True) так и не додумался. Спасибо :)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version