QT写代码编辑器需要哪些库?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT写代码编辑器需要哪些库?相关的知识,希望对你有一定的参考价值。

老师只给我们看了十节课他自己录的视频,在视频中做了一个连计算器都算不上的小软件,算是告诉我们了世界上有QT这个东西的存在,然后叫我们在期末之前提交一个自己写的软件给他。

我想问下,用QT写一个代码编辑器:
都需要用到哪些QT库?
怎么实现关键字高亮?
怎样实现自动缩进这些功能?
谢谢!

有一个库叫做Scintilla。
对应的Qt库为QScintilla。
像CodeBlocks的代码编辑器、SciTE、NotePad++,都是基于Scintilla的。
Qt中还有个QSyntaxHighlighter,可以了解一下。
参考技术A 关键字高亮思路:对字符串查找并对该子字符串进行颜色改变...

参考:http://bbs.csdn.net/topics/390528701

自动缩进参考:http://hi.baidu.com/lesley_gyn/item/cb6cebce8d36d41cc610b247

PS:建议你先做一些简单的程序,熟悉下Qt开发,完了再写编辑器。追问

能问一个问题吗?文本编辑器里面的所有数据是一个字符串吗?还是分成了很多个字符串?

追答

可以是一个字符串,也可以是很多个字符串!一个字符串的话占用资源少,但是操作繁琐;多字符串的话需要资源多,但是操作方便。主要看你自己设计

Qt 创建操作SQLLite数据库

  项目中需要用到小型数据库,查了一下Qt支持QMYSQL、QSQLITE等很多类型的数据库,使用MySQL需要安装一些相关软件或编译相关开发库,故选择QSQLITE数据库。
  创建数据库及数据库表格可使用软件手动创建编辑,也可使用程序创建、操作。测试程序代码如下所示:


//main.cpp

#include <QApplication>
#include <QSqlQuery>
#include <QDebug>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QSqlDatabase db = QSqlDatabase::addDatabase( "QSQLITE" ); 
    db.setDatabaseName( "test.db" );

    if( !db.open() )
        return false;

    QSqlQuery query;
    query.exec( "CREATE TABLE student("
                "id INTEGER PRIMARY KEY AUTOINCREMENT,"
                "name VARCHAR,"
                "age INT)" );
    query.exec( "insert into student values( 0, ‘LL‘, 16 )" );
    query.exec( "insert into student values( 1, ‘MM‘, 17 )" );
    query.exec( "insert into student values( 2, ‘NN‘, 18 )" );

    query.exec( "select * from student" );

    while( query.isActive() && query.next() )
    {
        qDebug() <<  query.value( 0 ).toInt() << query.value( 1 ).toString() 
        << query.value( 2 ).toInt() << "\n";
    }

    return a.exec();
}

结果:
技术分享图片

以上是关于QT写代码编辑器需要哪些库?的主要内容,如果未能解决你的问题,请参考以下文章

用vscode编写Python

有哪些好用的代码编辑器值得推荐?

Qt中,想写一个按钮button,想让它的名字改变。需要怎么写?

ubuntu上都有哪些markdown的编辑器

在 Qt4 中与外部编辑器通信的问题

基于Unity的编辑器开发: 进程间通信