QCalendarWidget y una piscina

Imagen de QCalendarWidgetAntes de nada, decir que estoy molido; me duelen los brazos, me duelen las piernas, me duelen los hombros y posiblemente, mañana tendré unas agujetas de órdago. Son las ventajas de pasarte cinco horas dentro de una piscina fregoteando pegotes de cemento de las losetas con una esponja, una espátula, papel de lija, estropajos de aluminio… ¿Ventaja? Dormiré muy bien esta noche 😀 ¿Problema? Que todavía no se termina 😦

 

Pero volviendo al tema principal: esta tarde he podido dedicarle un momento a QCalendarWidget para el programa AcoLITE.

Lo que necesito es que QCalendarWidget permita seleccionar una serie de días y los muestre con un color diferente a los demás, para indicar que están ‘marcados’ como días del evento. Aunque en un principio pensé en utilizar hojas de estilo (style sheets, con confundir con las CSS), pronto desistí: QCalendarWidget ‘no es personalizable’ mediante hojas de estilo. Y lo pongo entre comillas porque, en realidad, SÍ es personalizable mediante style sheets, pero en base a personalizar todas las dependencias de QCalendarWidget… y hay unas cuantas.

QCalendarWidget y dependencias

Árbol de dependencias

Al final, reimplementé el método paintCell() después de añadirle a QCalendarWidget un QList, y conectar la señal de activación de fecha con un slot que se encarga de actualizar la fecha dentro del QList (si el QList la contiene una vez se ha pulsado, se elimina de dicha lista; si no, se introduce en ella). El nuevo método paintCell() luce tal que así:

[cce lang=”cpp-qt” file=”calendarwidget_paintcell.txt”]

[/cce]

Para conseguir uniformidad, acudimos a la paleta de colores del calendarWidget, y así podemos utilizar los colores apropiados (sobre todo para no perder el resalte de selección).

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s