admin 管理员组文章数量: 1184232
QT实现“图图秀”
showimageDialog.h
#ifndef SHOWIMAGEDIALOG_H
#define SHOWIMAGEDIALOG_H#include <QWidget>
#include <QImage>//图片对象
#include <QPainter>//画家类namespace Ui {
class ShowImageDialog;
}class ShowImageDialog : public QWidget
{Q_OBJECTpublic:explicit ShowImageDialog(QWidget *parent = 0);~ShowImageDialog();private slots://上一张按钮的槽函数void on_m_btnPrev_clicked();//下一张按钮的槽函数void on_m_btnNext_clicked();
private://绘图事件处理函数,窗口改变会自动运行或者调用update触发运行void paintEvent(QPaintEvent *);
private:Ui::ShowImageDialog *ui;int m_index;//图片索引
};#endif // SHOWIMAGEDIALOG_H
showimagedialog.cpp
#include "showimagedialog.h"
#include "ui_showimagedialog.h"
#include <QDebug>ShowImageDialog::ShowImageDialog(QWidget *parent) :QWidget(parent),ui(new Ui::ShowImageDialog)
{ui->setupUi(this);m_index = 0;
}ShowImageDialog::~ShowImageDialog()
{delete ui;
}
//上一张按钮的槽函数
void ShowImageDialog::on_m_btnPrev_clicked()
{if(--m_index < 0){m_index = 9;}update();//触发绘图事件
}
//下一张按钮的槽函数
void ShowImageDialog::on_m_btnNext_clicked()
{if(++m_index > 9){m_index = 0;}while(1);update();//触发绘图事件
}
//绘图事件处理函数,窗口改变会自动运行或者调用update触发运行
void ShowImageDialog::paintEvent(QPaintEvent *)
{//1)创建画家对象QPainter painter(this);//2)获取绘图的矩形区域,QRect表示矩形区域的对象QRect rect = ui->frame->frameRect();//平移rect坐标值,让其和父窗口(painter)坐标系一致rect.translate(ui->frame->pos());//frame相对父窗口位置//qDebug() << "frame:" << ui->frame->pos();//打印rect记录frame控件的位置//qDebug() << "rect:" << rect.x() << "," << rect.y();//3)准备要绘制的图片对象,QImage表示图片对象//":/new/prefix1/images/m_index.jpg"QImage image(":/new/prefix1/images/"+QString::number(m_index)+".jpg");//4)使用painter将image绘制到rectpainter.drawImage(rect,image);
}
main.cpp
#include "showimagedialog.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);ShowImageDialog w;w.show();return a.exec();
}
本文标签: QT实现“图图秀”
版权声明:本文标题:QT实现“图图秀” 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.roclinux.cn/b/1693760943a241262.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论