`
daisy_xu
  • 浏览: 5172 次
社区版块
存档分类
最新评论

QT学习笔记(三)

qt 
阅读更多
一)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 学习笔记 qt学习笔记

    ### Qt学习笔记知识点详解 #### 一、从Hello Qt开始 **知识点1:Qt程序的基本结构** - **头文件引入**: - 第1行和第2行代码中,`#include &lt;QApplication&gt;` 和 `#include &lt;QLabel&gt;` 是引入Qt中的两个类:`...

    Linux 嵌入式QT学习笔记

    ### Linux 嵌入式QT学习笔记 #### 一、信号与槽机制 信号与槽是QT框架中非常核心的概念之一,它为图形用户界面(GUI)应用程序提供了一种灵活而强大的事件处理机制。 ##### 1. 信号与槽的基本概念 - **信号(Signal...

    现代OpenGL+Qt学习笔记之二:程序框架

    现代OpenGL+Qt学习笔记之二:程序框架http://blog.csdn.net/chaojiwudixiaofeixia/article/details/77917697源码。

    QT学习笔记_经验篇

    ### QT学习笔记_经验篇 #### 一、初识QT及环境配置 ##### 环境检查与安装 - **检查RedHat自带QT库** - **路径**: `/usr/lib/qt-3.1` - **操作**: 查看`qt3-1`目录下是否有13个文件,如果没有,需通过以下步骤...

    qt.rar_QT 学习网_Qt 学习笔记_qt 项目体会_qt使用心得

    在“qt.rar”这个压缩包中,包含的是关于QT学习的资源,特别是个人的学习笔记和项目体会,对于初学者来说是宝贵的参考资料。以下将详细讲解QT学习中的一些关键知识点: 1. **Qt基础知识**:Qt的核心是信号与槽机制...

    QT学习笔记

    在学习QT的过程中,我们需要掌握其基本概念和常用技术。以下是根据给定文件内容整理的一些知识点: 1. Qt简介:QT是一个完整的C++应用程序框架。它提供了丰富的类库和工具来创建跨平台的应用程序。QT不仅包含GUI...

    现代OpenGL+Qt学习笔记之三:显示一个彩色三角形

    现代OpenGL+Qt学习笔记之三:显示一个彩色三角形http://blog.csdn.net/chaojiwudixiaofeixia/article/details/77927876源码。

    qt经典学习笔记

    以下将基于这个标题和描述,以及可能包含在文档"qt经典学习笔记1.doc"中的内容,来阐述QT学习的一些关键知识点。 1. **QT基础概念**:QT的核心是其对象模型,所有的类都是继承自QObject,通过信号与槽机制实现对象...

    QT学习笔记_经验篇.doc

    这篇QT学习笔记主要涉及了在Linux环境下使用QT进行C++编程的基础步骤和常见问题的解决。 首先,笔记介绍了如何检查系统是否已经安装了QT库。在RedHat系统中,可以通过查看/usr/lib/qt-3.1目录是否存在13个文件来...

    Qt学习笔记_QT_

    **Qt学习笔记** Qt是一个强大的跨平台应用程序开发框架,由The Qt Company维护,广泛用于创建桌面、移动和嵌入式系统的用户界面。本笔记将深入介绍Qt的核心概念、关键组件和常见应用场景,帮助初学者快速掌握Qt编程...

    QT学习笔记汇总.zip

    QT是Qt的缩写,它是一个跨...在QT学习笔记中,可能涵盖了以上所有或部分知识点,包括实例代码、问题解析、最佳实践等内容。通过对这些笔记的深入学习,开发者可以系统地掌握QT开发,从而高效地构建跨平台的应用程序。

    Qt学习笔记--图形视图框架

    Qt学习笔记--图形视图框架很好的,步骤清楚,手把手的教你使用Qt绘制图形视图

    QT学习笔记,总结了在学习过程中遇到的问题

    QT学习笔记,总结了在学习过程中遇到的问题

    Qt学习笔记(超详细带源码).pdf

    本篇学习笔记详细介绍了Qt的学习过程,包含了配置环境、基础概念、创建项目、常用API等方面的知识点。 ### Qt简介 - **跨平台图形界面引擎**:Qt支持多种操作系统平台,如Windows、Linux、MacOS等。 - **历史**:Qt...

    Qt学习笔记_QT_源码.zip

    这个"Qt学习笔记_QT_源码.zip"压缩包文件很可能是为学习Qt编程提供的一系列资料,包括笔记和源码示例。 首先,让我们深入理解Qt的核心概念: 1. **信号与槽机制**:这是Qt中的核心特性,它是一种异步事件处理方式...

    Qt个人学习笔记整理

    ### Qt个人学习笔记整理:对话框的深度解析与实践 #### 一、Qt自定义对话框:QMessageBox的深入理解 在Qt框架中,`QMessageBox`类扮演着极其重要的角色,它为开发者提供了一种简便的方式来创建各种对话框,如消息...

    QT学习笔记.pdf

    ### QT学习笔记知识点详解 #### 一、布局管理器 在QT中,布局管理器是一种非常重要的机制,用于管理窗口中的各个控件的位置和大小。布局管理器能够自动调整控件的位置和大小,以适应窗口的变化,使得界面设计更加...

    QT学习笔记.docx

    ### QT学习笔记知识点详解 #### 一、简介 本文档主要涵盖了个人在学习QT过程中的基础知识总结和笔记,包括但不限于信号槽机制、事件处理机制、菜单栏设计等内容。虽然覆盖的知识点较为基础,但旨在通过浅显易懂的...

Global site tag (gtag.js) - Google Analytics