Найти - Пользователи
Полная версия: отмирание форм GUI
Начало » Python для новичков » отмирание форм GUI
1
goblin_maks
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 потоков..где я закопал эту собаку?
goblin_maks
хоть бы кто сказал что run() поток не запускает…разобрался уже…сделал через Qt поток..

тему можно закрывать..
Rodegast
Привет goblin_maks ты не мог бы выложить какой нибудь пример использования Qt потока. А то у меня та же проблема.
Dimka665
используется стандартный поток.
вызывается он методом start()
goblin_maks
с простым потоком у меня тоже возникли некоторые проблемы..поэтому использовал 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))
Rodegast
Спасибо! Похоже то что надо.
Ferroman
Этот тред так и просится в форум GUI
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