QT中有 轮播图的需求,按照正常html版本 。只需要配置数组就能搞定,但是c++ qt版本 应该用什么了。 第一想到的是采用定时器。
// 定时器初始化{m_pTime = new QTimer(this);m_pTime->start(4 * 1000);//启动定时器并设置播放时间间隔m_pAutoFlag = true;//连接自动播放槽函数connect(m_pTime, SIGNAL(timeout()), this, SLOT(myautoPhotoSlot()));// 上一页connect(ui->imgToolBtn2, &QPushButton::toggled, [=](bool bChecked) {myautBtnPhotoSlot("previous");});// 下一页connect(ui->imgToolBtn1, &QPushButton::toggled, [=](bool bChecked) {myautBtnPhotoSlot("next");});}//自动播放函数
void CCendDetailsTabWidget::myautoPhotoSlot()
{if (m_num != m_bannerList.count() && m_num <= m_bannerList.count()){QPixmap tempDir = m_bannerList.at(m_num); //从容器中找到要播放的照片的相对路径ui->label_2->setScaledContents(true);ui->label_2->setPixmap(QPixmap(tempDir));//显示图片}//判断自动播放的时候是否播放到了最后一张图片,如果是则停止自动播放if (m_num == m_bannerList.count()){m_num = 0;}if (m_pAutoFlag){m_num++;}
}//自动播放函数
void CCendDetailsTabWidget::myautBtnPhotoSlot(QString name)
{if (name == "previous"){m_num--;}else {m_num++;}if (m_num < 0){m_num = 0;}if (m_num > m_bannerList.count()){m_num = m_bannerList.count();}if (m_num > 0 && m_num < m_bannerList.count()){QPixmap tempDir = m_bannerList.at(m_num); //从容器中找到要播放的照片的相对路径ui->label_2->setScaledContents(true);ui->label_2->setPixmap(QPixmap(tempDir));//显示图片ui->imgToolTitle->setText(m_bannerNmaeList.at(m_num));}
}