|
在Qt開發界面的時候,非常多的時候都得使用定時器,定時器具體可以干什么呢?比如:QTimer控制時鐘、QTimer定時改變樣式、QTimer改變進度等。。。說到這里,經常使用QQ,而不同的時段都會顯示不同的背景,我認為如果用Qt實現的話,就得使用QTimer定時的獲取時間,判斷當前時間為morning、noon、afternoon、night來改變當前的背景。。。 雖然QTimer簡單易用,但是比較耗內存,所以在不必要的時候就必須終止它。。。
QTimer構造:
QTimer timer = new QTimer();
QTimer設置超時并啟動:
timer->setInterval(1000);
timer->start();
或:timer->start(1000);
QTimer改變定時間隔為msec毫秒
timer->changeInterval(msec);
如果這個定時器信號是運行的,它將會被停止并且重新開始,否則它將會被開始。
QTimer是否則正在運行
timer->isActive()
如果定時器正在運行,返回真,否則返回假。
QTimer停止
timer->stop();
當達到超時時間,則發射信號,執行指定的槽函數
connect(timer, SIGNAL(timeout()), this, SLOT(myTimeout()));
以下是利用QTimer來控制一個進度條,超時時間為1000毫秒(1秒),當達到超時時間時,進度條增加1%,當進度條為100%時,停止Qtimer。
MyWidget::MyWidget(QWidget *parent) :
QWidget(parent)
{
this->setFixedSize(400, 300);
progress_value = 0;
timer = new QTimer();
timer->setInterval(1000);
timer->start();
progress_bar = new QProgressBar(this);
progress_bar->setGeometry(50, 50, 150, 20);
progress_bar->setValue(0);
connect(timer, SIGNAL(timeout()), this, SLOT(changeValue()));
}
void MyWidget::changeValue()
{
progress_value++;
if(progress_value > 100)
{
timer->stop();
}
progress_bar->setValue(progress_value);
}
效果圖:
注:
技術在于交流、溝通,轉載請注明出處并保持作品的完整性。
|
|