Код для строки прогресса на Python

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Код для строки прогресса на Python

Сообщение Максим Дубинин » 04 май 2009, 06:10

Не поделится ли кто-нибудь кодом для простейшей строки прогресса на питоне, который можно было бы утилизировать в своем расширении? Мне самому, увы, слабо.

Как я понимаю это должна быть мини-QT форма с кнопкой Cancel хитро показывающая строку прогресса при передаче ей параметра процента выполнения. Как-то так.

Взамен поделюсь прекрасным расширением :)
пристегивайтесь, турбулентность прямо по курсу

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Код для строки прогресса на Python

Сообщение Voltron » 04 май 2009, 09:54

sim писал(а):Не поделится ли кто-нибудь кодом для простейшей строки прогресса на питоне, который можно было бы утилизировать в своем расширении?
Ищите прогресс-бар? Их есть у меня :-)
Не знаю, как организован процесс внутри расширения, но простенький пример прогресс-бара даю ниже. Каждое нажатие на кнопку увеличивает величину прогресса на один шаг.

Код: Выделить всё

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class dlgTest(QDialog):
	def __init__(self, parent = None):
		QDialog.__init__(self, parent)
		
		dlgLayout = QVBoxLayout()
		
		# create progress bar
		self.pbProgress = QProgressBar()
		# set initial value
		self.value = 0
		self.pbProgress.setValue( self.value )
		# set interval
		self.pbProgress.setRange( 0, 10 )
		
		# create push button
		self.btnPush = QPushButton()
		self.btnPush.setText( self.tr( "Press me!" ) )
		QObject.connect( self.btnPush, SIGNAL("clicked()" ), self.updateProgress )
		
		dlgLayout.addWidget(self.pbProgress)
		dlgLayout.addWidget(self.btnPush)
		
		self.setLayout(dlgLayout)
		
		self.setWindowTitle(self.tr("Progress bar"))
		self.resize(200, 100)
	
	def updateProgress( self ):
		# increase counter and update progressbar
		self.value += 1
		self.pbProgress.setValue( self.value )

if __name__ == "__main__":
	app = QApplication(sys.argv)
	frm = dlgTest()
	frm.show()
	sys.exit(app.exec_())
Если ипользуются потоки, то тогда код будет чуть сложнее, пример можно глянуть в тех же fTools, например в файле doVisual.py. Надеюсь, это поможет. Если что-то не понятно - обращайтесь, постараюсь по мере сил объяснить и помочь.
sim писал(а):Мне самому, увы, слабо
Кто-то не так давно мне сказал "...мы все такие... профессионалов не существует :)". В начале всегда тяжело, но если есть желание разобраться, если есть цель, есть поддержка... тогда любые проблемы рано или поздно будут решены.

Dorofeev
Активный участник
Сообщения: 194
Зарегистрирован: 08 фев 2007, 23:29
Репутация: 1
Откуда: Симферополь
Контактная информация:

Re: Код для строки прогресса на Python

Сообщение Dorofeev » 04 май 2009, 13:19

Могу выслать пару книг по разработке на С++ по QT4, честно взятых из интернета. Хоть язык разработки не питон, но вроде бы классы Python и С++ по названию и передаваемым параметрам совпадают. Главное, что все подробно разжевано и на русском языке

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Код для строки прогресса на Python

Сообщение Максим Дубинин » 04 май 2009, 16:50

дааа, про слабо я был не совсем так выразился :) правильнее было бы написать, нужна наводка, пока многие банальные вещи ставят меня в тупик, вот например потоки меня пока пугают одним названием. Но про сообщество все верно, просто надо не стесняться спрашивать, вот я и спрашиваю ;)

Однако расширение свое я написал (всем желающим можно посмотреть)

спасибо за код и книжки, собираюсь и тем и другим воспользоваться
пристегивайтесь, турбулентность прямо по курсу

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя