Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Qprocess, сигнал окончания процесса [RSS Feed]

#1 Сен. 23, 2008 11:01:40

birst
От:
Зарегистрирован: 2007-09-13
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Qprocess, сигнал окончания процесса

День добрый,
возникла непонятка
описал сигналы , старта , чтения, и останова процесса , прииспускании этих сигналов выполняются мои методы
но если все сигналы отрабатываются без проблемм , сигнал останова не работает
т.е. даже не испускается.
У меня возникла мысль , не может ли быть такого что программа которая запускается генерирует какой то не стандартный сигнал при окончании , т.е. не NormalExit или CrashExit , а какой то свой ?
И если да , то как можно это забороть ?



Офлайн

#2 Сен. 23, 2008 12:37:22

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

Qprocess, сигнал окончания процесса

Можно кусок кода показать? Ещё лучше пример.



Офлайн

#3 Сен. 23, 2008 13:42:01

birst
От:
Зарегистрирован: 2007-09-13
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Qprocess, сигнал окончания процесса

poltergeist
Можно кусок кода показать? Ещё лучше пример.
есть кнопка , по нажатию на нее выполняется метод Scan

def Scan(self):
self.process=QtCore.Process(self.frame)
self.process.run(“self.programm”,“self.arguments”)
self.connect(self.process,Qt.SIGNAL(started()),self.Start)
self.connect(self.process,Qt.SIGNAL(finished()),self.Stop)

def Start(self):
print (“process is started”)

def Stop(self):
print (“process is stoped”)

при старте процесса в консоль выдается сообщение, при остановке нет
хотя при просмотре списка процессов процесс начинается и заканчивается
причем по сигналу readyRead() я еще считываю вывод процесса - отлично считывается



Офлайн

#4 Сен. 23, 2008 15:13:57

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

Qprocess, сигнал окончания процесса

как много ошибок, откуда это скопировано?

Сравните:

from PyQt4 import QtCore, QtGui

class Sample(QtCore.QObject):
def __init__(self):
QtCore.QObject.__init__(self)

self.programm = 'notepad'
self.arguments = ''

self.process = QtCore.QProcess()
self.connect(self.process, QtCore.SIGNAL('started()'), self.start)
self.connect(self.process, QtCore.SIGNAL('finished(int, QProcess::ExitStatus)'), self.stop)

def scan(self):
self.process.start(self.programm, self.arguments)

def start(self):
print 'process is started'

def stop(self, exitCode, exitStatus):
print 'process is stoped'

def wait(self):
self.process.waitForFinished()

print 'start ...'

a = Sample()
a.scan()
a.wait()

print '... exit'



Офлайн

#5 Сен. 23, 2008 17:52:06

birst
От:
Зарегистрирован: 2007-09-13
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Qprocess, сигнал окончания процесса

poltergeist
как много ошибок, откуда это скопировано?

Сравните:
Вы это про синтаксические ошибки ?
спасибо , заработало , но осталось загадкой зачем в доке описаны два сигнала finished() и finished(int,ExitStatus) думал что первый используется для того что бы просто определить окончание процесса без получения кода и статуса.



Офлайн

#6 Сен. 24, 2008 08:48:13

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

Qprocess, сигнал окончания процесса

В доке описан всего один сигнал finished (btw Qt4.4.0).



Офлайн

#7 Сен. 24, 2008 12:28:39

birst
От:
Зарегистрирован: 2007-09-13
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Qprocess, сигнал окончания процесса

poltergeist
В доке описан всего один сигнал finished (btw Qt4.4.0).
а можно ссылочку на доку , потому как пользуюсь какой то убогой - битые ссылки, не полные описания и т.п.
спасибо



Офлайн

#8 Сен. 24, 2008 13:13:34

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

Qprocess, сигнал окончания процесса

В онлайн доступе: http://doc.trolltech.com/4.4/index.html
В офлайн, советую поставить оригинальную библиотеку Qt, помимо PyQt, и пользоваться оригинальной докой для С++ (Assistant) в удобном интерфейсе и с быстрым поиском.

QProcess: http://doc.trolltech.com/4.4/qprocess.html#finished



Отредактировано (Сен. 24, 2008 13:15:07)

Офлайн

  • Начало
  • » GUI
  • » Qprocess, сигнал окончания процесса[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version