2016-10-01 15 views
0

Qtプログラムでシンプルなクロックを作成したいとします。QLabelは1秒に1回更新されます。QTでシンプルなクロックを作成する

QLabel名:label_clock

マイクロック「スクリプト」:

while (true) 
{ 
    QString time1 = QTime::currentTime().toString(); 
    ui->label_clock->setText(time1); 
} 

しかし、私は私のプログラムにそれをPASEとき、あなたはすでにそれが、このスクリプトでそれを実行して停止することを知っている - 常にますがtrueにすると、スクリプトの下のコードは決して実行されません - >プログラムがクラッシュします。

このスクリプトを動作させるにはどうすればよいですか?私は1秒に1回更新されている簡単な時計を作りたいと思う。

+0

ループの各繰り返しの間に少なくとも1秒間 "スリープ"してはいけませんか? – Max

+0

@Maxだから代わりに何を使うべきですか? – allin0n3

答えて

1

これにはQTimerを使用できます。もちろん

QTimer *t = new QTimer(this); 
t->setInterval(1000); 
connect(t, &QTimer::timeout, [&]() { 
    QString time1 = QTime::currentTime().toString(); 
    ui->label_clock->setText(time1); 
}); 
t->start(); 

あなたがC++ 11のサポートを有効にする必要があります(あなたのproファイルCONFIG += c++11に追加):このような何かを試してみてください。

+0

うまく動作します、ありがとうございます。これは私が探していたものです! – allin0n3

関連する問題