Уведомления

Группа в Telegram: @pythonsu

#1 Март 11, 2009 12:15:59

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

отмирание форм GUI

class MyForm(QtGui.QLabel):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_Form()
self.ui.setupUi(self)

@QtCore.pyqtSignature("")
def on_pushButton_start_clicked(self):
self.ui.progressBar.setRange(0, len(self.ui.listWidget.selectedItems()))
global toolName
for i in range(len(self.ui.listWidget.selectedItems())):
tmpstr=result.pop()
toolName=tmpstr
THR().run()
QtGui.QApplication.processEvents()

class THR(threading.Thread):
def run(self):
global toolName
TName = str(toolName)
if (sys.modules.has_key(TName)):
module = reload(sys.modules[TName])
else:
module = __import__(TName, globals())
помогите разобраться..что делаю не так?…создаю поток в котором в цикле поочередно импортирую каждый модуль из списка.кадждый модуль выполняется несколько минут. при этом основная форма на которой находится кнопка on_pushButton_start_clicked после ее нажатия отмирает..в title появляется надпись not responding и сама форма не реагирует на нажатие других кнопок. threading.activeCount() говорит что в в каждый момент активно не более 2 потоков..где я закопал эту собаку?



Офлайн

#2 Март 13, 2009 16:53:49

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

отмирание форм GUI

хоть бы кто сказал что run() поток не запускает…разобрался уже…сделал через Qt поток..

тему можно закрывать..



Офлайн

#3 Март 18, 2009 11:11:33

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2730
Репутация: +  183  -
Профиль   Отправить e-mail  

отмирание форм GUI

Привет goblin_maks ты не мог бы выложить какой нибудь пример использования Qt потока. А то у меня та же проблема.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#4 Март 18, 2009 12:26:59

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

отмирание форм GUI

используется стандартный поток.
вызывается он методом start()



Офлайн

#5 Март 19, 2009 17:13:37

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

отмирание форм GUI

с простым потоком у меня тоже возникли некоторые проблемы..поэтому использовал Qt поток..вот пример..:
так обьявил поток:

class THR(QtCore.QThread):

def run(self):
!Здесь все то что надо исполнять в потоке!
так вызвал поток:
self.thread = THR()
self.connect(self.thread, QtCore.SIGNAL("finished()"), self, QtCore.SLOT("threadFinished()")) # приконектился на сигнал завершения потока...
self.thread.start()
так повесился на завершение потока:
    @QtCore.pyqtSignature("")
def threadFinished(self): # Начать тестирование
timer.stop()
self.ui.pushButton_start.setText(QtGui.QApplication.translate("Form", "Начать тестирование", None, QtGui.QApplication.UnicodeUTF8))



Отредактировано (Март 19, 2009 17:14:48)

Офлайн

#6 Март 20, 2009 09:19:15

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2730
Репутация: +  183  -
Профиль   Отправить e-mail  

отмирание форм GUI

Спасибо! Похоже то что надо.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#7 Март 20, 2009 13:29:14

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

отмирание форм GUI

Этот тред так и просится в форум GUI

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version