#include "widget.h" #include "ui_widget.h" #include <QTime> #include <QStringList> Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); //显示系统时间 //实例化对象 this->timer=new QTimer(this); QString curtime=QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"); //信号和槽函数关联 connect(this->timer,&QTimer::timeout,this,&Widget::update_time); //启动定时器 this->timer->start(1000); //启动计时器 this->count=0; //实例化对象 this->timer2=new QTimer(this); //信号和槽函数关联 connect(this->timer2,&QTimer::timeout,this,&Widget::update_time2); //开始计时 this->timer2->start(1000); /初始化图片列表 QStringList images; } Widget::~Widget() { delete ui; } void Widget::on_home_btn_clicked() { //首页 } void Widget::on_per_btn_clicked() { //上一页 } void Widget::on_next_btn_clicked() { //下一页 } void Widget::on_last_btn_clicked() { //尾页 } void Widget::update_time() { //获取系统时间 QString curtime=QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"); //显示 this->ui->time_lab->setText(curtime); } void Widget::update_time2() { //计时 this->count++; QTime time(0,0,0,0); //QTime转换成QString QString sec=time.addSecs(this->count).toString("mm:ss"); //更新到LCDNumber显示 this->ui->lcdNumber->display(sec); }使用QStringList实现电子相册,并添加背景
时间: 2023-06-16 18:06:33 浏览: 99
抱歉,你的代码里没有使用 QStringList 来实现电子相册,也没有提及要添加背景。你可以参考下面的代码:
在 widget.h 中添加成员变量和槽函数:
```cpp
private:
QStringList images; // 图片列表
int currentImageIndex; // 当前显示的图片索引
private slots:
void showImage(); // 显示图片
```
在构造函数中初始化图片列表和当前图片索引:
```cpp
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
// ...
// 初始化图片列表
images << ":/images/image1.jpg"
<< ":/images/image2.jpg"
<< ":/images/image3.jpg"
<< ":/images/image4.jpg";
// 初始化当前图片索引
currentImageIndex = 0;
// ...
}
```
在 showImage() 槽函数中显示当前索引对应的图片,并且在 QLabel 中添加背景:
```cpp
void Widget::showImage()
{
// 显示当前索引对应的图片
QPixmap pixmap(images[currentImageIndex]);
ui->imageLabel->setPixmap(pixmap);
// 添加背景
QPalette palette = ui->imageLabel->palette();
palette.setColor(QPalette::Background, Qt::black);
ui->imageLabel->setAutoFillBackground(true);
ui->imageLabel->setPalette(palette);
// 更新当前图片索引
currentImageIndex = (currentImageIndex + 1) % images.count();
}
```
在构造函数中启动定时器,每隔 5 秒钟切换一张图片:
```cpp
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
// ...
// 启动定时器
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(showImage()));
timer->start(5000);
// ...
}
```
阅读全文