Найти - Пользователи
Полная версия: Передача информации в основной поток PyQt4
Начало » GUI » Передача информации в основной поток PyQt4
1 2
Rodegast
UI файл в студию!
Razor
Rodegast
UI файл в студию!
Постом ниже я переписал пример.
Rodegast
Уже посмотрел и надо сказать что подобных приколов я давно не видел… Ты хоть понимаешь что у тебя с каждым приходом сигнала окно заново создаётся? Вот пример того как надо работать с потоком:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui, uic
# Класс, отвечающий за GUI
class GeneralWindow(QtGui.QWidget):
	def __init__(self, parent=None):
		QtGui.QWidget.__init__(self, parent)
		Form, Base = uic.loadUiType("test_form.ui")
		self.ui = Form()
		self.ui.setupUi(self)
		self.ui.button.clicked.connect(self.work)
		
		self.potok = Potok()
		QtCore.QObject.connect(self.potok, QtCore.SIGNAL("PotokValue(PyQt_PyObject)"), self.labels_output)
	def work(self):
		self.potok.start()
	# Функция, отвечающая за вывод в GUI
	def labels_output(self, text):
		print text  # Выведет текст, заданный во вводе
		self.ui.label.setText(str(text))
class Potok(QtCore.QThread):
	
	def __init__(self):
		QtCore.QThread.__init__(self)
	
	def run(self):
		for value in xrange(8):
			self.emit(QtCore.SIGNAL("PotokValue(PyQt_PyObject)"), value)
if __name__ == "__main__":
	import sys
	app = QtGui.QApplication(sys.argv)
	window = GeneralWindow()
	window.show()
	sys.exit(app.exec_())
Razor
Rodegast
Ты хоть понимаешь что у тебя с каждым приходом сигнала окно заново создаётся?
Нет, понятия не имел.

Rodegast
Вот пример того как надо работать с потоком
Ничего не пойму. Так - работает. Перенес к себе - не работает. Вы не могли бы взглянуть на исходный код (его там чуть поболее будет)?

https://www.dropbox.com/sh/kumvqlo98nmycih/AABkeqZ6W9-G9tCHRSGnr5u9a

Основные два файла - GUI_For_Scrapy и Spider_Find_Domains. Первый - логика GUI из Form.ui, а второй - паук Scrapy. Пометил комментариями и решеточками некоторые места для лучшего понимания.

Потратил на решение проблемы уже очень много времени. Помогите, коллега.
Rodegast
Выкинь SimpleThread и работай с потоком так как в моём примере.
Razor
Rodegast
Выкинь SimpleThread и работай с потоком так как в моём примере.
Выкидывал - не помогло. Может я как то неверно связываю два этих класса?
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