Найти - Пользователи
Полная версия: Qprocess, сигнал окончания процесса
Начало » GUI » Qprocess, сигнал окончания процесса
1
birst
День добрый,
возникла непонятка
описал сигналы , старта , чтения, и останова процесса , прииспускании этих сигналов выполняются мои методы
но если все сигналы отрабатываются без проблемм , сигнал останова не работает
т.е. даже не испускается.
У меня возникла мысль , не может ли быть такого что программа которая запускается генерирует какой то не стандартный сигнал при окончании , т.е. не NormalExit или CrashExit , а какой то свой ?
И если да , то как можно это забороть ?
poltergeist
Можно кусок кода показать? Ещё лучше пример.
birst
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() я еще считываю вывод процесса - отлично считывается
poltergeist
как много ошибок, откуда это скопировано?

Сравните:
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'
birst
poltergeist
как много ошибок, откуда это скопировано?

Сравните:
Вы это про синтаксические ошибки ?
спасибо , заработало , но осталось загадкой зачем в доке описаны два сигнала finished() и finished(int,ExitStatus) думал что первый используется для того что бы просто определить окончание процесса без получения кода и статуса.
poltergeist
В доке описан всего один сигнал finished (btw Qt4.4.0).
birst
poltergeist
В доке описан всего один сигнал finished (btw Qt4.4.0).
а можно ссылочку на доку , потому как пользуюсь какой то убогой - битые ссылки, не полные описания и т.п.
спасибо
poltergeist
В онлайн доступе: http://doc.trolltech.com/4.4/index.html
В офлайн, советую поставить оригинальную библиотеку Qt, помимо PyQt, и пользоваться оригинальной докой для С++ (Assistant) в удобном интерфейсе и с быстрым поиском.

QProcess: http://doc.trolltech.com/4.4/qprocess.html#finished
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB