发布时间:2025-12-09 17:39:41 浏览次数:4
今天做的是在把照片放到Qt上,做一个点名的程序,只有三个按键
创建一个Qt控件项目,选择Qt Gui应用
取完名字一直下一步后选择Widget
弄好后打开界面文件,进行设计,背景大小要比图形大一点,因为要放三个按键(Push Button),设置一个label,大小和图片一样
然后新建一个文件,类型是Qt->Qt资源文件,把照片放进去
下一步是把照片放进label中,将label改变样式表,添加资源(background-image),选中图片
然后就差不多了,这里我偷懒将三个按键转为了槽(右键点击按键,转到槽,然后clicked,转槽之前要先设置好名字,不然函数名不好看),下面是我名字设置
widget.h
#ifndef WIDGET_H#define WIDGET_H#include <QWidget>namespace Ui {class Widget;}class Widget : public QWidget{Q_OBJECTint image_index;public:explicit Widget(QWidget *parent = 0);~Widget();private slots:void on_btn_prev_clicked();void on_btn_next_clicked();void on_btn_random_clicked();private:Ui::Widget *ui;};#endif // WIDGET_Hwidget.cpp
#include <stdio.h>#include <stdlib.h>#include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget){image_index = 1;ui->setupUi(this);//设置第一个图片ui->image->setStyleSheet("background-image: url(:/new/prefix1/image/1.jpg);");//使按键无效//ui->btn_prev->setEnabled(false);}Widget::~Widget(){delete ui;}void Widget::on_btn_prev_clicked(){if(1 == image_index){image_index = 5;}qDebug("%d",image_index--);char buf[256] = {};sprintf(buf,"background-image: url(:/new/prefix1/image/%d.jpg);",image_index);ui->image->setStyleSheet(buf);}void Widget::on_btn_next_clicked(){if(5 == image_index){image_index = 0;}qDebug("%d",image_index++);char buf[256] = {};sprintf(buf,"background-image: url(:/new/prefix1/image/%d.jpg);",image_index);ui->image->setStyleSheet(buf);}void Widget::on_btn_random_clicked(){int jpg = rand()%15+1;while(jpg--){sleep(1);qDebug("%d",image_index++);if(6 == image_index)image_index = 1;char buf[256] = {};sprintf(buf,"background-image: url(:/new/prefix1/image/%d.jpg);",image_index);ui->image->setStyleSheet(buf);QApplication::processEvents();}}