QT - Cambiar Color de borde de un QWidget constantemente

 
Vista:

Cambiar Color de borde de un QWidget constantemente

Publicado por Luis Mariano Savigne (1 intervención) el 26/04/2012 15:08:39
Buenos días a todos.
Tengo varios días tratando de alternar los colores del borde de varios componentes gráficos de Qt constantemente como por ejemplo un QLineEdit, pues de esta forma se vera como una animación sobre el.

Lo único que he podido hacer desde entonces es lo siguiente.
Re implementar el paint de mi clase la cual hereda de QGraphicsItem
donde lo que logro hacer es asignarle un nuevo estilo al borde, enfocándome en su color, donde en otro hilo de mi aplicacion se esta
modificando el color del pen que muestro y es entonces cuando surge un ambiente de intercambio de colores continuamente del borde del componente.

void Edit::paint( QPainter * painter, const QStyleOptionGraphicsItem*, QWidget* )
{
painter->save();

QString m_xp = QString::number(m_pen.width()) + "px";
QString m_color = (m_pen.color().name());

QString m_style = "border: " + m_xp + " solid " + m_color;
m_edit->setStyleSheet(m_style);


painter->restore();
}
Esta vía me resuelve parcialmente, pues no me explico porque consume tanta memoria del procesador, ya que de un 11% normalmente que tengo el procesador
con mi aplicación en ejecución al adicionar estas líneas de código se transforma en un 70%, y solo animando un solo componente de esta forma.
Probé poner 3 a ejecutar el mismo código.. y casi colapsa mi aplicación.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder