Вот часть моего страшного кода:
Код: Выделить всё
def setSpeed(self):
## Установка скорости визуализации
global spd
spd=self.SliderSpeed.value()
spd=(1000/spd)*10
print spd
## Отсюда и до VisualOtdStep6 - функции для визуализации метода отделения корня
def VisualOtdStep1(self):
self.label_2O.setPalette(palette2)
self.label_3O.setPalette(palette)
def VisualOtdStep2(self):
self.label_3O.setPalette(palette2)
self.label_4O.setPalette(palette)
def VisualOtdStep3(self):
self.label_4O.setPalette(palette2)
self.label_5O.setPalette(palette)
def VisualOtdStep4(self):
self.label_5O.setPalette(palette2)
self.label_6O.setPalette(palette)
def VisualOtdStep5(self):
self.label_6O.setPalette(palette2)
self.label_7O.setPalette(palette)
def VisualOtdStep6(self):
self.label_7O.setPalette(palette2)
self.label_4O.setPalette(palette2)
self.label_8O.setPalette(palette)
def CalcOtd(self):
## Процедура отделения корня
global x1s, x2s, palette, palette2
## Описываем палитры
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor("red"))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active,QtGui.QPalette.Window,brush)
palette2=QtGui.QPalette()
brush2=QtGui.QBrush(QtGui.QColor("lightgray"))
brush2.setStyle(QtCore.Qt.SolidPattern)
palette2.setBrush(QtGui.QPalette.Active,QtGui.QPalette.Window,brush2)
## Делаем остальные вкладки активными
for self.tabWidget in self.tabIter, self.tabKas, self.tabPolDelen :
self.tabWidget.setEnabled(True)
## Устанавливаем палитру для виджетов
for self.labelWidget in self.label_2O,self.label_3O,self.label_4O,self.label_5O,self.label_6O,self.label
_7O,self.label_8O:
self.labelWidget.setPalette(palette2)
## Определяем f(x)
def f(x):
x=x**3-6*x+2
return x
## Непосредственно алгоритм вычисления с визуализацией
self.label_2O.setPalette(palette)
a=-3
b=3
h=0.01
x1=a
x2=x1+h
y1=f(x1)
while x2<b:
self.timer.singleShot(spd, self.VisualOtdStep1)
y2=x2**3-6*x2+2
self.timer.singleShot(spd, self.VisualOtdStep2)
if y1*y2<0:
self.timer.singleShot(spd, self.VisualOtdStep3)
print "x1="+str(x1)
print "x2="+str(x2)
self.labelResult2.setText("x1="+str(x1)+";"+"x2="+str(x2))
x1s=x1
x2s=x2
self.timer.singleShot(spd, self.VisualOtdStep4)
x1=x2
x2=x1+h
y1=y2
self.timer.singleShot(spd, self.VisualOtdStep5)
else:
self.timer.singleShot(spd, self.VisualOtdStep6)