Я пытался запустить команду с использованием многопроцессорности, поскольку графический интерфейс зависает при использовании цикла while. Мне нужно вызвать функцию внутри класса pyqt4. Или лучший способ справиться с мультипроцессом поможет мне Qthread? У меня есть поиск по многим учебникам, но я не могу понять, как я могу это сделать.PyQt4 как я могу использовать многопроцессорную обработку, нажав кнопку pushButton
Я пробовал, как это, что прекрасно работает. Проблема в том, что я не могу получить вход QeditText, переданный функции, если есть способ, которым я могу, тогда он будет работать для того, что я хочу сделать.
import sys
import multiprocessing
import time
from PyQt4 import QtCore, QtGui
from form import Ui_Dialog
def worker():
t = MyDialog()
name = multiprocessing.current_process().name
print name, 'Starting', t.self.ui.rtmpIN.toPlainText()
time.sleep(2)
print name, 'Exiting'
class MyDialog(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.startButton.clicked.connect(self.start)
self.ui.stopButton.clicked.connect(self.stop)
self.ui.comboBox.addItem("player 1")
self.ui.comboBox.addItem("player 2")
self.ui.comboBox.addItem("player 3")
#self.ui.comboBox.currentIndexChanged.connect(self.selectionchange)
def selectionchange(self,i):
print self.ui.comboBox.currentText()
def start(self):
worker_2 = multiprocessing.Process(target=worker) # use default name
worker_2.start()
print "in: ", self.ui.rtmpIN.toPlainText()
print "out: ", self.ui.outPUT.toPlainText()
print str(self.ui.comboBox.currentText())
if self.ui.quialityBox.isChecked():
q = "Streaming started" + "\n" + "quality: " + self.ui.Setquality.toPlainText() + "\n" + "player: " + str(self.ui.comboBox.currentText())
self.ui.theLog.append(q)
#print self.ui.Setquality.toPlainText()
else:
p = "Streaming" + "\n" + "player: " + str(self.ui.comboBox.currentText()) + "\n"
self.ui.theLog.append(p)
def stop(self):
print 'stop pressed.'
self.close()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MyDialog()
myapp.show()
sys.exit(app.exec_())
Мне нужно уметь получать данные от этого, внутри функции работника, есть ли способ?
print "in: ", self.ui.rtmpIN.toPlainText()
print "out: ", self.ui.outPUT.toPlainText()
редактировать: забыл form.py здесь http://pastebin.com/HksuSjkt
, пожалуйста, добавьте form.py – eyllanesc
@eyllaneschere это форма http://pastebin.com/HksuSjkt – Slightz
@Sligthz Я создан процесс Qthread https://github.com/CodeHuntersLab/CuriElements/blob/master/CuriElements/soundthread. py – eyllanesc