Qt实战-简单的点名程序和抽奖程序
今天做的是在把照片放到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_H
widget.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();}
}