![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes. |
||
Você está aqui: Qt ::: Classes, Controles e Componentes ::: QTimer |
Aprenda a usar a classe QTimer em seus programas QtQuantidade de visualizações: 7802 vezes |
A classe QTimer pode ser usada em nossos programas Qt quando precisamos criar timers, ou seja, ações que serão executadas repetidamente ou somente uma vez após decorrido um determinado tempo. Para usar esta classe devemos adicionar a linha:#include <QTimer> à nossa seção de includes. Para criar timers usando a classe QTimer nós só precisamos criar um objeto desta classe, conectar seu sinal (signal) timeout() aos slots apropriados e efetuar uma chamada ao seu método start(). A partir daí o objeto timer emitirá o sinal timeout() em intervalos constantes. Veja um trecho de código no qual usamos um objeto da classe QTimer para exibir e atualizar constantemente as horas em um componente QLabel:
JanelaPrincipal::JanelaPrincipal(QWidget *parent) : QMainWindow(parent)
{
ui.setupUi(this);
// declaração no arquivo .h
// QTimer *timer;
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(atualizarHoras()));
timer->start(1000);
}
void JanelaPrincipal::atualizarHoras()
{
// vamos atualizar as horas no QLabel a cada segundo
ui.label->setText(tr("%1").arg(QTime::currentTime().toString("hh:mm:ss")));
}
Podemos fazer com que um timer seja disparado somente uma vez por meio de uma chamada ao método setSingleShot(true). Podemos ainda chamar o método estático QTimer::singleShot() para chamar um slot (uma única vez) depois de um tempo decorrido. Veja: QTimer::singleShot(1000, this, SLOT(atualizarHoras())); Em aplicações multithreaded podemos usar a classe QTimer em qualquer thread que tenha um laço de eventos (event loop). Para iniciar o laço de eventos em uma thread não-GUI, devemos usar QThread::exec(). Neste caso o Qt usa a identificação da thread para determinar qual thread emitirá o sinal timeout(). Por causa disso, devemos iniciar e parar o timer em sua própria thread. Não é possível iniciar um timer a partir de outras threads. Alternativas ao QTimer Uma alternativa ao uso da classe QTimer é chamar o método QObject::startTimer() para seu objeto e reimplementar o tratator de evento QObject::timerEvent() em suas classes (que deverão herdar de QObject). A desvantagem desta abordagem é que timerEvent() não suporta recursos de alto nível, tais como disparos únicos ou signals. Uma outra alternativa ao uso do QTimer é usar a classe QBasicTimer. Esta classe é geralmente menos complicada que o uso do método QObject::startTimer() diretamente. Alguns sistemas operacionais limitam o número de timers que podem ser usados. O Qt Framework tenta fornecer meios para evitar tal limitação. |
|
|
Veja mais Dicas e truques de Qt |
Dicas e truques de outras linguagens |
|
C - Como escrever uma função C personalizada que copia os caracteres de uma string para outra string |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





