一)connect();
connect中的SLOT里的自定义过程的申明一定要写在private slots:(或public slots:)下
二)继续按QT学习笔记(二)顺序:
1)如何在编辑器中插入表格、列表与图片
1.1.1)添加私有槽private slots声明:
void insertTable();//插入表格
void insertList();//插入列表
void insertImage();//插入图片
1.1.2)在工具栏上添加Action;
//插入表格
QAction *action_textTable = new QAction(tr("表格"), this);
connect(action_textTable, SIGNAL(triggered()), this, SLOT(insertTable()));
ui->mainToolBar->addAction(action_textTable);
//插入列表
QAction *action_textList = new QAction(tr("列表"), this);
connect(action_textList, SIGNAL(triggered()), this, SLOT(insertList()));
ui->mainToolBar->addAction(action_textList);
//插入图片
QAction *action_textImage = new QAction(tr("图片"), this);
connect(action_textImage, SIGNAL(triggered()), this, SLOT(insertImage()));
ui->mainToolBar->addAction(action_textImage);
1.1.3)添加槽函数的实现代码
void MainWindow::insertTable()//插入表格
{
QTextCursor cursor = ui->textEdit->textCursor();
QTextTableFormat format;//表格格式
format.setCellSpacing(2);//表格外边白
format.setCellPadding(10);//表格内边白
cursor.insertTable(2, 2, format);//插入2行2列表格
}
void MainWindow::insertList() //插入列表
{
QTextListFormat format;//列表格式
format.setStyle(QTextListFormat::ListDecimal);//列表编号
ui->textEdit->textCursor().insertList(format);
}
void MainWindow::insertImage() //插入图片
{
QTextImageFormat format;
format.setName("D:\For Code\5-3\Image");//图片路径
ui->textEdit->textCursor().insertImage(format);
}
2 添加查找功能
2.1.1 在.h文件中添加类的前置声明
class QLineEdit;
2.1.2 添加私有对象的指针
QLineEdit *lineEdit;
2.1.3 添加private slots
void textFind();//查找文件
void findNext();//查找下一个
2.1.4 添加头文件以及添加Action:
#include <QDebug>
#include <QlineEdit>
#include <QDialog>
#include <QPushButton>
#include <QVBoxLayout>
//增加查找功能
QAction *action_textFind = new QAction(tr("查找"), this);
connect(action_textFind, SIGNAL(triggerd()), this, SLOT(textFind()));
ui->mainToolBar->addAction(action_textFind);
2.1.5添加槽函数的实现代码
void MainWindow::textFind()
{
QDialog *dlg = new QDialog(this);
lineEdit = new QLineEdit(dlg);
QPushButton *btn = new QPushButton(dlg);
btn->setText(tr("查找下一个"));
connect(btn, SIGNAL(clicked()), this, SLOT(findNext()));
QVBoxLayout *layout = new QVBoxLayout;
layout ->addWidget(lineEdit);
layout ->addWidget(btn);
dlg ->setLayout(layout);
dlg->show();
}
void MainWindow::findNext()
{
QString string = lineEdit->text();
bool isfind = ui->textEdit->find(string, QTextDocument::FindBackward);
if(isfind)
{
qDebug()<<tr("行号:%1 列号:&2").arg(ui->textEdit->textCursor().blockNumber()).arg(ui->textEdit->textCursor().columnNumber());
}
}
3 语法高亮与html
3.1.1添加新的文件,选择C++ 类,类名:mySyntaxHighlighter,基类:QSyntaxHighlighter,继承自:QObject
3.1.2 修改mysyntaxhighlighter.h头文件
将QTextDocument类对象指针作为其父部件指针,这样可以自动调用highlightBlock()函数,可以时的检测文本
//将QTextDocument作为父窗口这样就可以自动调用highlightBlock()函数
explicit mySyntaxHighlighter(QTextDocument *parent = 0);
重新实现highlightBlock()函数以便将,字符串的格式应用到特定的字符串上面
protected :
void highlightBlock(const QString &text); //必须重新实现该函数
3.1.3 修改mysyntaxhighlighter.cpp文件
mySyntaxHighlighter::mySyntaxHighlighter(QTextDocument *parent) :
QSyntaxHighlighter(parent)
{
}
void mySyntaxHighlighter::highlightBlock(const QString &text)
{
QTextCharFormat charFormat; //设置匹配的字符格式
charFormat.setFontWeight(QFont::Bold);
charFormat.setForeground(Qt::green);
QString pattern = "\\bchar\\b"; //要匹配的字符,这里是char单词
QRegExp expression(pattern); //创建正则表达式
int index = text.indexOf(expression); //默认从0开始匹配字符串
//如果匹配成功,返回值为字符串的起始位置,它大于或等于0
while(index >= 0 ) {
int length = expression.matchedLength(); //要匹配字符串的长度
setFormat(index,length,charFormat); //对要匹配的字符串设置格式
index = text.indexOf(expression,index + length); //继续匹配
}
}
3.1.4 修该主界面头文件
class mySyntaxHighlighter;
添加私有变量
mySyntaxHighlighter *highlighter;
3.1.5 修该主界面的cpp文件
在构造函数中添加
highlighter = new mySyntaxHighlighter(ui->textEdit->document());
4 QTextEdit的使用
4.1.1建立一个QTextEdit
QTextDocument *m_doc = new QTextDocument("文本框中的文本");//创建一个装文本的容器
QTextEdit te;//定义文本框
te.setDocument(m_doc);//为文本框绑定内容
4.1.2 向QTextEdit中写入数据
QString gyyq = rec.value("gy").toString();
te.document()->setPlainText(gyyq);
4.1.3 从QTextEdit中读取数据
QString gyyq = te.document()->toPlainText();
分享到:
相关推荐
### Qt学习笔记知识点详解 #### 一、从Hello Qt开始 **知识点1:Qt程序的基本结构** - **头文件引入**: - 第1行和第2行代码中,`#include <QApplication>` 和 `#include <QLabel>` 是引入Qt中的两个类:`...
### Linux 嵌入式QT学习笔记 #### 一、信号与槽机制 信号与槽是QT框架中非常核心的概念之一,它为图形用户界面(GUI)应用程序提供了一种灵活而强大的事件处理机制。 ##### 1. 信号与槽的基本概念 - **信号(Signal...
现代OpenGL+Qt学习笔记之二:程序框架http://blog.csdn.net/chaojiwudixiaofeixia/article/details/77917697源码。
### QT学习笔记_经验篇 #### 一、初识QT及环境配置 ##### 环境检查与安装 - **检查RedHat自带QT库** - **路径**: `/usr/lib/qt-3.1` - **操作**: 查看`qt3-1`目录下是否有13个文件,如果没有,需通过以下步骤...
在“qt.rar”这个压缩包中,包含的是关于QT学习的资源,特别是个人的学习笔记和项目体会,对于初学者来说是宝贵的参考资料。以下将详细讲解QT学习中的一些关键知识点: 1. **Qt基础知识**:Qt的核心是信号与槽机制...
在学习QT的过程中,我们需要掌握其基本概念和常用技术。以下是根据给定文件内容整理的一些知识点: 1. Qt简介:QT是一个完整的C++应用程序框架。它提供了丰富的类库和工具来创建跨平台的应用程序。QT不仅包含GUI...
现代OpenGL+Qt学习笔记之三:显示一个彩色三角形http://blog.csdn.net/chaojiwudixiaofeixia/article/details/77927876源码。
以下将基于这个标题和描述,以及可能包含在文档"qt经典学习笔记1.doc"中的内容,来阐述QT学习的一些关键知识点。 1. **QT基础概念**:QT的核心是其对象模型,所有的类都是继承自QObject,通过信号与槽机制实现对象...
这篇QT学习笔记主要涉及了在Linux环境下使用QT进行C++编程的基础步骤和常见问题的解决。 首先,笔记介绍了如何检查系统是否已经安装了QT库。在RedHat系统中,可以通过查看/usr/lib/qt-3.1目录是否存在13个文件来...
**Qt学习笔记** Qt是一个强大的跨平台应用程序开发框架,由The Qt Company维护,广泛用于创建桌面、移动和嵌入式系统的用户界面。本笔记将深入介绍Qt的核心概念、关键组件和常见应用场景,帮助初学者快速掌握Qt编程...
QT是Qt的缩写,它是一个跨...在QT学习笔记中,可能涵盖了以上所有或部分知识点,包括实例代码、问题解析、最佳实践等内容。通过对这些笔记的深入学习,开发者可以系统地掌握QT开发,从而高效地构建跨平台的应用程序。
Qt学习笔记--图形视图框架很好的,步骤清楚,手把手的教你使用Qt绘制图形视图
QT学习笔记,总结了在学习过程中遇到的问题
本篇学习笔记详细介绍了Qt的学习过程,包含了配置环境、基础概念、创建项目、常用API等方面的知识点。 ### Qt简介 - **跨平台图形界面引擎**:Qt支持多种操作系统平台,如Windows、Linux、MacOS等。 - **历史**:Qt...
这个"Qt学习笔记_QT_源码.zip"压缩包文件很可能是为学习Qt编程提供的一系列资料,包括笔记和源码示例。 首先,让我们深入理解Qt的核心概念: 1. **信号与槽机制**:这是Qt中的核心特性,它是一种异步事件处理方式...
### Qt个人学习笔记整理:对话框的深度解析与实践 #### 一、Qt自定义对话框:QMessageBox的深入理解 在Qt框架中,`QMessageBox`类扮演着极其重要的角色,它为开发者提供了一种简便的方式来创建各种对话框,如消息...
### QT学习笔记知识点详解 #### 一、布局管理器 在QT中,布局管理器是一种非常重要的机制,用于管理窗口中的各个控件的位置和大小。布局管理器能够自动调整控件的位置和大小,以适应窗口的变化,使得界面设计更加...
### QT学习笔记知识点详解 #### 一、简介 本文档主要涵盖了个人在学习QT过程中的基础知识总结和笔记,包括但不限于信号槽机制、事件处理机制、菜单栏设计等内容。虽然覆盖的知识点较为基础,但旨在通过浅显易懂的...