| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Python: Разработка GUI > pyqt4 > mysqldb execute > Busy QProgressBar |
| Автор: pyqt 9.5.2008, 12:12 |
| Привет всем! Необходимо создать функцию, которая перед SQL запросом вызывает QDialog c Busy QProgressBar, а после скрывает его. Это необходимо, потому что SQL сервер удаленный и может долго процессить запросы Все что у меня получилось, это показывать диалог, скрывать его, но! Во время выполнения SQL запроса progressbar не анимируется вообще, а только после sql запроса (если не скрывать форму). Вот то, что получилось: class sql: # skipped # def executeX(self,q): self.app.myDialog.show() self.app.myProgress.setValue(random.randint(1,100)) QtGui.QApplication.processEvents(QtCore.QEventLoop.AllEvents) self.dbc.execute(q) self.app.myDialog.hide() Как заставить progressBar анимироваться? Или может в отдельном потоке приплюсовывать значения? (я пробовал, но не получается обращаться с одного потока к объектам другого потока) Заранее всем спасибо P.S. Всех с Великим праздником! |
| Автор: _Viper_ 12.5.2008, 12:17 |
| Выполняй self.dbc.execute(q) в отдельном потоке. |
| Автор: pyqt 12.5.2008, 16:52 |
| Спасибо, все уже разрешилось |
| Автор: aspolyakov 13.9.2008, 18:12 |
| Здраствуйте, покажите как у вас дело решилось. У меня тоже примерно, через екзекьют выполняю звпросы, каждый в своей нити. После выполнения нити меняется прогрессбар, но на деле выходит, что сначало нити долго виснут, а потом быстро добегают до конца бара. Линк на доки или на пример тоже был бы кстати. |