找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3836|回復: 0
打印 上一主題 下一主題
收起左側

Qt之QTimer

[復制鏈接]
跳轉到指定樓層
樓主
ID:3721 發(fā)表于 2015-1-5 15:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  在Qt開發(fā)界面的時候,非常多的時候都得使用定時器,定時器具體可以干什么呢?比如:QTimer控制時鐘、QTimer定時改變樣式、QTimer改變進度等。。。說到這里,經(jīng)常使用QQ,而不同的時段都會顯示不同的背景,我認為如果用Qt實現(xiàn)的話,就得使用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();

當達到超時時間,則發(fā)射信號,執(zhí)行指定的槽函數(shù)
  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);
}

效果圖:

注:
    技術在于交流、溝通,轉載請注明出處并保持作品的完整性。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩

相關帖子

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表