#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 15:06:32 浏览: 87
QTimer与QTime实现电子时钟
首先,需要在Widget类中添加一个成员变量,用于保存图片列表:
```c++
private:
QStringList images;
```
然后,在Widget类的构造函数中初始化图片列表,并设置背景图片:
```c++
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
// 初始化图片列表
this->images << "image1.jpg" << "image2.jpg" << "image3.jpg" << "image4.jpg";
// 设置背景图片
QPixmap pixmap(":/images/background.jpg");
QPalette palette;
palette.setBrush(QPalette::Background, pixmap);
this->setPalette(palette);
// 其它代码...
}
```
接下来,在首页按钮的槽函数中显示第一张图片:
```c++
void Widget::on_home_btn_clicked()
{
if (this->images.isEmpty()) {
return;
}
QPixmap pixmap(":/images/" + this->images.first());
this->ui->image_label->setPixmap(pixmap);
}
```
在上一页、下一页、尾页按钮的槽函数中分别显示前一张、后一张、最后一张图片:
```c++
void Widget::on_per_btn_clicked()
{
if (this->images.isEmpty()) {
return;
}
int index = this->images.indexOf(this->ui->image_label->pixmap()->cacheKey());
if (index <= 0) {
return;
}
QPixmap pixmap(":/images/" + this->images.at(index - 1));
this->ui->image_label->setPixmap(pixmap);
}
void Widget::on_next_btn_clicked()
{
if (this->images.isEmpty()) {
return;
}
int index = this->images.indexOf(this->ui->image_label->pixmap()->cacheKey());
if (index == -1 || index == this->images.count() - 1) {
return;
}
QPixmap pixmap(":/images/" + this->images.at(index + 1));
this->ui->image_label->setPixmap(pixmap);
}
void Widget::on_last_btn_clicked()
{
if (this->images.isEmpty()) {
return;
}
QPixmap pixmap(":/images/" + this->images.last());
this->ui->image_label->setPixmap(pixmap);
}
```
最后,将界面上的Image Label组件的背景设置为透明,以便显示背景图片:
```c++
this->ui->image_label->setAttribute(Qt::WA_TranslucentBackground);
```
阅读全文