学习Qt5(5)
来源:互联网 发布:derby数据库优缺点 编辑:程序博客网 时间:2024/05/16 18:32
1.Qt主窗体
1)Qt主要使用QMainWindow来作为主窗口,其中包含菜单栏、工具栏、状态栏、中心部件等;
2)命令动作通常使用QAction来创建;
3)可以在状态栏上面添加Qt的窗口控件,例如进度条等;
4)QDockWidget锚接部件通常用于主窗口上面,以实现停靠或浮动的效果;
5)创建动作:
openFileAction =new QAction(QIcon("open.png"),tr("打开"),this); openFileAction->setShortcut(tr("Ctrl+O")); openFileAction->setStatusTip(tr("打开一个文件"));
6)创建菜单和工具栏:
fileMenu =menuBar()->addMenu(tr("文件")); fileMenu->addAction(openFileAction); fileTool =addToolBar("File"); fileTool->addAction(openFileAction);
7)打开文件:
QString fileName = QFileDialog::getOpenFileName(this,tr("打开"),".",tr("*.cpp *.h")); QFile file(filename); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream textStream(&file); while(!textStream.atEnd()) { QString readStr = textStream.readLine(); } }
8)打印文件和打印预览:
QPrinter printer; QPrintPreviewDialog preview(&printer,0); connect(&preview, SIGNAL(paintRequested(QPrinter*)), this, SLOT(QPrinter*)); preview.exec; QPrintDialog printDialog(&printer,this); if(printDialog.exec()) { QTextDocument *doc = ui->text->document(); doc->print(&printer); }
9)打印图片:
QPrinter printer; QPrintDialog printDialog(&printer,this); if (printDialog.exec()) { QPainter painter(&printer); QRect rect =painter.viewport(); QSize size = img.size(); size.scale(rect.size(), Qt::KeepAspectRatio); painter.setViewport(rect.x(), rect.y(), size.width(), size.height()); painter.setWindow(img.rect()); painter.drawImage(0, 0, img); }
2.图像坐标转换
1)利用QMatrix来实现二维坐标的转换,可以用来实现移动、缩放、变形、旋转等功能;
2)缩放功能:(setScaledContents(true)内容自适应大小)
QMatrix martix; QImage img; martix.scale(3,3); //水平和垂直都放大三倍,小于1则是缩小 img = img.transformed(martix);
3)旋转功能:利用martix.rotate(度数)实现;
4)镜像功能:利用QImage::mirrored(水平镜像,垂直镜像)来实现,其中参数为false或true。
3.文本编辑功能
1)文本编辑功能取决于利用的文本框,通常使用QTextDocument;
2)文本编辑的排序功能通常使用QTextListFormat来实现;
3)利用QTextCursor进行文本的定位。
0 0
- 学习Qt5(5)
- 学习Qt5(1)
- 学习Qt5(2)
- 学习Qt5(3)
- 学习Qt5(4)
- 学习Qt5(6)
- 学习Qt5(7)
- 学习Qt5(8)
- 学习Qt5(9)
- 学习Qt5(11)
- 学习Qt5(12)
- Qt5学习笔记(1)
- QT5学习
- QT5学习
- 《Qt5学习笔记5》创建对话框
- Qt5开发学习之事件(十三)
- Qt5--QSS学习笔记(一)
- QT5(5)窗口布局
- sql 、linq、lambda 查询语句的区别
- 哎呦,不错哦
- 银行业务调度系统_编码思路及代码
- 零基础学python-13.1 迭代器简介与文件迭代器
- 聊聊编程语言学习之路
- 学习Qt5(5)
- 0908Android基础四大组件之BroadcastReceiver
- 黑马程序员-C语言-递归
- 交通灯管理系统_编码思路及代码
- 线段树详解 (原理,实现与应用)
- POJ 1201Intervals(差分约束系统)
- JAVA中堆和栈的区别
- Service
- 类加载器和代理