#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QColorDialog>
#include <QButtonGroup>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 菜单 - 打开 - 保存 信号槽
connect(ui->open_action,SIGNAL(triggered(bool)),ui->image,SLOT(open()));
// connect(ui->save_action,SIGNAL(triggered(bool)),this,SLOT(save())); // 这个槽函数写了状态栏打印信息
connect(ui->save_action,SIGNAL(triggered(bool)),ui->image,SLOT(save()));
// 初始化 color
color = QColor(200,0,0,200);
ui->image->setPenColor(color);
// 添加按钮组
QButtonGroup *bg = new QButtonGroup(this);
bg->addButton(ui->penButton);
bg->addButton(ui->eraserButton);
// 设置按钮组排他性
bg->setExclusive(true);
}
MainWindow::~MainWindow()
{
delete ui;
}
// 选中画笔
void MainWindow::setPen()
{
status = PEN;
ui->image->setPenColor(color);
ui->statusBar->showMessage("进入画笔模式",5000);
}
// 滑块值被改变
void MainWindow::setPenSize()
{
// 给绘制区传值,设置画笔宽度和颜色
int penSize = ui->penSize->value(); // 获取画笔大小
ui->image->setPenSize(penSize);
// 状态栏打印信息
QString message = QString("调整画笔大小为%1").arg(penSize);
ui->statusBar->showMessage(message,5000);
}
// 选中橡皮擦
void MainWindow::setEraser()
{
// 将画笔状态宏设置为 ERASER
status = ERASER;
// 将橡皮擦按钮设置为选中
ui->eraserButton->setChecked(true);
ui->image->setEraser(ui->penSize->value());
ui->statusBar->showMessage("进入橡皮擦模式",5000); // 状态栏打印信息
}
// 选择颜色
void MainWindow::setColor()
{
// 打开颜色选择器
color = QColorDialog::getColor(Qt::red,this);
// 设置按钮样式表
QString sty = QString("background-color:rgba(%1,%2,%3,%4)")
.arg(color.red()).arg(color.green()).arg(color.blue()).arg(color.alpha());
ui->colorButton->setStyleSheet(sty);
// 判断画笔状态
if(status == PEN)
{
ui->image->setPenColor(color);
ui->statusBar->showMessage("设置颜色",5000);
}
if(status == ERASER) ui->statusBar->showMessage("颜色仅在画笔状态下生效",5000); // 状态栏打印信息
}
// 菜单 - 保存 按钮触发
void MainWindow::save()
{
ui->image->save();
ui->statusBar->showMessage("已执行保存文件",5000); // 状态栏打印信息
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
QT做的一个图片编辑器的完整源码,相当于 QScrollArea、QPuhButton、QSlider、QMenBar、QStatusBar、QGroupBox 等控件的综合演示,适合初学者学习 主要实现功能:打开某路径图片可以在窗口中展示,如果图片大于展示区域,会自动出现滑动块,可以通过画笔和橡皮擦来修改图片,可以选择不同的画笔颜色,可以画笔大小,编辑完成后,可以保存图片,打开图片快捷键为 ctrl + o ,保存图片快捷键为: ctrl + s ; 源码演示地址:https://mp.csdn.net/mp_blog/creation/editor?spm=1000.2115.3001.5352
资源推荐
资源详情
资源评论
收起资源包目录
QT做一个图片编辑器.zip (8个子文件)
XPS
ximage.cpp 2KB
XPS.pro.user 62KB
mainwindow.h 563B
ximage.h 749B
XPS.pro 1KB
mainwindow.cpp 3KB
main.cpp 183B
mainwindow.ui 6KB
共 8 条
- 1
资源评论
- qq3070238072023-07-04额,学习学习
7年老菜鸡
- 粉丝: 24
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功