【Qt5开发及实例】14、实现一个简单的文本编辑器3

实现文本编辑器的图片旋转功能

基础界面实现:http://blog.csdn.net/cutter_point/article/details/42839071

首先在原来的基础上添加槽函数:

  void ShowRotate90();    //旋转90度
  void ShowRotate180();   //180度
  void ShowRotate270();   //270度

函数连接:

  //实现图片的选择动作
  //旋转90°
  rotate90Action = new QAction(QIcon(":/rotate90.png"), tr("get rotate90"), this);
  rotate90Action->setStatusTip(tr("get rotate90 image"));
  connect(rotate90Action, SIGNAL(triggered()), this, SLOT(ShowRotate90()));
  //180°
  rotate180Action = new QAction(QIcon(":/rotate180.png"), tr("get rotate180"), this);
  rotate180Action->setStatusTip(tr("get rotate180 image"));
  connect(rotate180Action, SIGNAL(triggered()), this, SLOT(ShowRotate180()));
  //270°
  rotate270Action = new QAction(QIcon(":/rotate270.png"), tr("get rotate270"), this);
  rotate270Action->setStatusTip(tr("get rotate270 image"));
  connect(rotate270Action, SIGNAL(triggered()), this, SLOT(ShowRotate270()));

槽函数的具体实现:

//旋转270度
void ImageProcessor::ShowRotate270()
{
  if(img.isNull())
    return;
  QMatrix matrix;
  matrix.rotate(270);    //旋转90度
  img = img.transformed(matrix);    //图像旋转之后再重新得到赋值
  showWidget->imageLabel->setPixmap(QPixmap::fromImage(img));
}

//旋转180度
void ImageProcessor::ShowRotate180()
{
  if(img.isNull())
    return;
  QMatrix matrix;
  matrix.rotate(180);    //旋转90度
  img = img.transformed(matrix);    //图像旋转之后再重新得到赋值
  showWidget->imageLabel->setPixmap(QPixmap::fromImage(img));
}

//旋转90度
void ImageProcessor::ShowRotate90()
{
  if(img.isNull())
    return;
  QMatrix matrix;
  matrix.rotate(90);    //旋转90度
  img = img.transformed(matrix);    //图像旋转之后再重新得到赋值
  showWidget->imageLabel->setPixmap(QPixmap::fromImage(img));
}

实现结果:

时间: 2024-10-03 01:21:42

【Qt5开发及实例】14、实现一个简单的文本编辑器3的相关文章

【Qt5开发及实例】12、实现一个简单的文本编辑器1

showwidget.h /** * 书本:[Qt5开发及实例] * 功能:实现一个简单的文本编辑器 * 文件:showwidget.h * 时间:2015年1月18日10:03:21 * 作者:cutter_point */ #ifndef SHOWWIDGET_H #define SHOWWIDGET_H #include <QWidget> #include <QLabel> #include <QTextEdit> #include <QImage>

【Qt5开发及实例】16、实现一个简单的文本编辑器(over)

实现一个简单的文本编辑器 其他具体的代码基础看前面:http://blog.csdn.net/cutter_point/article/details/42839071 1.功能 这个程序又添加了文本编辑功能,什么加粗,斜体,下划线,字体设置,字号设置,文字排版,段落对齐功能. 2.代码全展示 头文件 showwidget.h /** * 书本:[Qt5开发及实例] * 功能:实现一个简单的文本编辑器 * 文件:showwidget.h * 时间:2015年1月18日10:03:21 * 作者:

【Qt5开发及实例】13、实现一个简单的文本编辑器2

接下来我们为这个项目添加图像的缩放功能: 添加一个槽函数: void ShowZoomIn(); //关于图片的缩放功能 添加相应的响应连接 connect(zoomInAction, SIGNAL(triggered()), this, SLOT(ShowZoomIn())); //进行图片放大 槽函数的实现: //实现图片的放大 void ImageProcessor::ShowZoomIn() { //首先判断是否有照片 if(img.isNull()) return; //没有照片,那就

【Qt5开发及实例】15、实现一个简单的文本编辑器4

实现图片的镜像功能 其他具体的代码基础看前面:http://blog.csdn.net/cutter_point/article/details/42839071 槽函数: void ShowMirrorVertical(); //垂直镜像 void ShowMirrorHorizontal(); //水平镜像 相应的响应连接 //实现图像镜像的动作 //纵向 mirrorVerticalAction = new QAction(QIcon("mirrorVertical.png"),

Python-tkinter实现简单的文本编辑器

利用tkinter实现简单的文本编辑器.创建一个简单的文本编辑器.可以用读文件的方式在一个文本域里显示一些文字供用户编辑. 当用户退出程序时(通过 QUIT 按钮)会询问用户是否保存所作的修改. (直接上代码~有注释~) 1 # -*- encoding: utf-8 -*- 2 ''' 3 @File : 简单文本编辑器.py 4 @Time : 2020/04/05 11:35:39 5 @Author : Konggu 6 @Desc : None 7 ''' 8 import os 9

【Qt5开发及实例】9、一个QQ界面

这个程序主要是为了学习一下工具盒类,这里使用了3个工具盒然后添加到整个界面上, 分别是:好友(good friend), 陌生人(do not remember), 黑名单(black items) 哈哈,原谅我这不咋地的英语,懂我就好. 实现图: 代码: drawer.h /** * 书本:[Qt5开发及实例] * 功能:实现一个自己的QQ界面 * 文件:drawer.cpp * 时间:2015年1月2日11:01:12 * 作者:cutter_point */ #ifndef DRAWER_

【Qt5开发及实例】17、一个对话框的坐标参数显示

一个对话框的坐标参数显示 介绍 这个是为了得到对话框的长宽,各个点的坐标,相对坐标,相对父窗口的坐标,相对在桌面的坐标 代码 geometry.h /** * 书本:[Qt5开发及实例] * 功能:显示对话框的坐标信息,参数信息 * 文件:geometry.cpp * 时间:2015年1月20日20:19:35 * 作者:cutter_point */ #ifndef GEOMETRY_H #define GEOMETRY_H #include <QDialog> #include <Q

【Qt5开发及实例】28、获取本机网络信息

networkinformation.h /** * 书本:[Qt5开发及实例] * 功能:获取本机网络信息 * 文件:networkinformation.h * 时间:2015年2月5日14:51:33 * 作者:cutter_point */ #ifndef NETWORKINFORMATION_H #define NETWORKINFORMATION_H #include <QWidget> #include <QLabel> #include <QLineEdit&

【Qt5开发及实例】22、文件浏览器

文件浏览器 今天有点痿了,昨天晚上2点左右睡的,怪我太痴迷编程???? NO!NO!NO!  看网络小说到2点,= =.我也是醉了,不知道为什么昨天晚上就是睡不着,然后就掏出手机看起了小说,结果是TMD居然看到了精彩片段,呵呵,等我回过神来已经2点了,坑.... 今天就做了个简单的小程序,然后就看看书,也没怎么敲代码,我觉得还是蛮好的,有时候不能往死里敲代码,还是要休息一下,看看其他的,思考一下下一步怎么走. 恩!就是这样,好吧,前面的这些才是今天的主要收获!! 文件浏览模型 /** * 书本: