El ejemplo Reloj digital muestra cómo utilizar QLCDNumber para mostrar un número con LCD-como dígitos.
Este ejemplo también muestra cómo QTimer se puede utilizar para actualizar un widget a intervalos regulares.
Definición de clase relojdigital
La clase relojdigital proporciona un widget de reloj muestra la hora, con horas y minutos separados por dos puntos al parpadear. Nos QLCDNumber subclase y aplicar una ranura privada llamada tiempo() para actualizar la visualización del reloj:
DigitalClock clase de implementación
En el constructor, en primer lugar cambiar el aspecto de los números de LCD. El QLCDNumber::Filled estilo segmentos planteadas produce rellena con el color de primer plano (típicamente negro). Hemos creado también un segundo temporizador para hacer un seguimiento de la hora actual, y conectar timeout() señal para el slot private tiempo() ranura de modo que la pantalla se actualiza cada segundo. Entonces, llamamos a la tiempo() de franjas horarias, sin esta convocatoria, habría un segundo de retraso en el inicio antes de que se muestra la hora.
El tiempo() ranura se llama cuando la visualización del reloj necesita ser actualizado.
La hora actual se convierte en una cadena con el formato "hh: mm". Cuando QTime::second() es un número par, los dos puntos de la cadena es sustituida por un espacio. Esto hace que los dos puntos aparecen y desaparecen cada segundo.
Por último, hacemos un llamamiento QLCDNumber::display() para actualizar el widget.
Digital Clock Example
Definición de clase relojdigital
La clase relojdigital proporciona un widget de reloj muestra la hora, con horas y minutos separados por dos puntos al parpadear. Nos QLCDNumber subclase y aplicar una ranura privada llamada tiempo() para actualizar la visualización del reloj:
- Código:
class relojdigital : public QLCDNumber
{
Q_OBJECT
public:
relojdigital(QWidget *parent = 0);
public slots:
void tiempo();
};
DigitalClock clase de implementación
- Código:
relojdigital::relojdigital(QWidget *parent)
: QLCDNumber(parent)
{
setSegmentStyle(Filled);
QTimer *temporalizador = new QTimer(this);
connect(temporalizador, SIGNAL(timeout()), this, SLOT(tiempo()));
temporalizador->start(1000);
tiempo();
setWindowTitle("Reloj Digital");
resize(150, 60);
}
En el constructor, en primer lugar cambiar el aspecto de los números de LCD. El QLCDNumber::Filled estilo segmentos planteadas produce rellena con el color de primer plano (típicamente negro). Hemos creado también un segundo temporizador para hacer un seguimiento de la hora actual, y conectar timeout() señal para el slot private tiempo() ranura de modo que la pantalla se actualiza cada segundo. Entonces, llamamos a la tiempo() de franjas horarias, sin esta convocatoria, habría un segundo de retraso en el inicio antes de que se muestra la hora.
- Código:
void relojdigital::tiempo()
{
QTime tiempo = QTime::currentTime();
QString texto = tiempo.toString("hh:mm");
if ((tiempo.second() % 2) == 0)
texto[2] = ' ';
display(texto);
}
El tiempo() ranura se llama cuando la visualización del reloj necesita ser actualizado.
La hora actual se convierte en una cadena con el formato "hh: mm". Cuando QTime::second() es un número par, los dos puntos de la cadena es sustituida por un espacio. Esto hace que los dos puntos aparecen y desaparecen cada segundo.
Por último, hacemos un llamamiento QLCDNumber::display() para actualizar el widget.
Digital Clock Example
Última edición por Lycus HackerEmo el Sáb Dic 26, 2009 10:26 pm, editado 1 vez