![]() | Añadir las implementaciones de los nuevos métodos |
Prev | Next |
En primer lugar, añadiremos un slot público a CentralView llamado setAlpha(int v). La implementación de este método únicamente llamará a m_timer.start(200,true); para iniciar la actualización del mapa de pixels.
Entonces cambiaremos el método updatePixmap para que utilice el valor del deslizador alfa. Cambiamos
KImageEffect::blend(m_color, image, 0.5 );por
KImageEffect::blend(m_color, image, m_alpha->value()/100.0 );De forma que el valor resultante esté en el intervalo [0,1] (ya que en el diseñador hemos establecido en 100 en valor máximo de m_alpha).
Vamos a añadir un nuevo método a CentralView llamado setColor.
void CentralView::setColor(const QColor &color) { m_red->setValue(color.red()); m_green->setValue(color.green()); m_blue->setValue(color.blue()); }Con esto es suficiente para establecer el color, ya que fija el valor de los tres componentes, emitiendo las tres respectivas señales y llamando a setRed, setGreen y setBlue, y, además, no parpadeará puesto que se llama al temporizador cada vez que cambia un valor (gracias a las señales que emiten los deslizadores cada vez que cambia su valor) y, por lo tanto, updatePixmap recibirá una única llamada.
Con este cambio tenemos una aplicación completamente operativa, a la que llamaremos s7.
Prev | Home | Next |
Modificación del interfaz de usuario existente | Up | Algunos cambios aquí y allá |