QT实现文本编辑器

QT实现文本编辑器
QT实现文本编辑器

一用Qt4实现的文本编辑器

1. 新建,打开,保存文件

2.基本的文本编辑功能(复制,粘贴,剪切等)

3.不同风格

4.改变文字的大小,颜色,字体等

界面如下:

二工程文件

1. /* src.pro*/

TEMPLATE = app

CONFIG += warn_on \

thread \

qt \

qtestlib

TARGET = texteditor

DESTDIR = ../bin

SOURCES += CMainWindow.cpp \

MainWindow.cpp \

CFindDialog.cpp

HEADERS += CFindDialog.h \

CMainWindow.h \

ui_finddialog.h \

ui_MainWindow.h

FORMS += FindDialog.ui \

MainWindow.ui

RESOURCES += MainWindow.qrc

QT += qt3support

2. /*CMainWindow.cpp*/

#include "CMainWindow.h"

#include "CFindDialog.h"

#include

#include

CMainWindow::CMainWindow(QWidget *parent)

: QMainWindow(parent)

{

setupUi(this);

iniStatusBar();

iniConnect();

fontColorAct = new QAction(QPixmap(32, 32), tr("改变字体颜色"), this);

styleToolBar = new QToolBar(this);

styleToolBar->setObjectName(QString::fromUtf8("styleToolBar"));

styleToolBar->setOrientation(Qt::Horizontal);

this->addToolBar(Qt::TopToolBarArea, styleToolBar);

menu_2->addAction(fontColorAct);

styleToolBar->addAction(fontColorAct);

show();

connect(fontColorAct, SIGNAL(triggered()), this, SLOT(changeColor())); }

void CMainWindow::iniConnect()

{

connect(textEdit, SIGNAL(cursorPositionChanged()),

this, SLOT(doCursorChanged()));

connect(textEdit->document(), SIGNAL(contentsChanged()),

this, SLOT(doModified()));

connect(actionAbout, SIGNAL(triggered()), this, SLOT(doAbout()));

connect(actionHelp, SIGNAL(triggered()), this, SLOT(doHelp()));

connect(actionQuit, SIGNAL(triggered()), this, SLOT(doQuit()));

connect(actionOpen, SIGNAL(triggered()), this, SLOT(doOpen()));

connect(actionAll, SIGNAL(triggered()), this, SLOT(doAll()));

connect(actionASave, SIGNAL(triggered()), this, SLOT(doASave()));

connect(actionClose, SIGNAL(triggered()), this, SLOT(doClose()));

connect(actionCopy, SIGNAL(triggered()), this, SLOT(doCopy()));

connect(actionUndo, SIGNAL(triggered()), this, SLOT(doUndo()));

connect(actionRedo, SIGNAL(triggered()), this, SLOT(doRedo()));

connect(actionSave, SIGNAL(triggered()), this, SLOT(doSave()));

connect(actionFind, SIGNAL(triggered()), this, SLOT(doFind()));

connect(actionNew, SIGNAL(triggered()), this, SLOT(do New()));

connect(actionPaste, SIGNAL(triggered()), this, SLOT(doPaste()));

connect(actionCut, SIGNAL(triggered()), this, SLOT(doCut()));

connect(actionWindows, SIGNAL(triggered()), this, SLOT(doWindows()));

connect(actionWindowsXp, SIGNAL(triggered()), this,

SLOT(doWindowsXp()));

connect(actionCDE, SIGNAL(triggered()), this, SLOT(doCDE()));

connect(actionMotif, SIGNAL(triggered()), this, SLOT(doMotif()));

connect(actionPlastique, SIGNAL(triggered()), this, SLOT(doPlastique()));

connect(actionFont, SIGNAL(triggered()), this, SLOT(doFont()));

}

void CMainWindow::changeColor()

{

QColor color =QColorDialog::getColor(fontColor, this);

if(color.isValid()) {

fontColor = color;

updateColor();

}

textEdit->setTextColor(fontColor);

}

void CMainWindow::doModified()

{

setWindowModified(textEdit->document()->isModified());

label2->setText("正在修改");

}

void CMainWindow::doAbout()

{

QMessageBox::about(this,

"关于",

"TextEditor 1.0\nBy Roc\nJune-15th-2009"); }

void CMainWindow::doHelp()

{

QString info;

QFile file("help.txt");

if (!file.open(QFile::ReadOnly | QFile::Text))

{

QMessageBox::warning(this,

"打开帮助文档",

QString("无法读取帮助文件:\n%1")

.arg(file.errorString()));

return ;

}

else

{

QTextStream in(&file);

QMessageBox box(this);

box.setWindowTitle("帮助");

box.setIcon(QMessageBox::Information);

box.setText("TextEditor简介:");

box.setStandardButtons(QMessageBox::Ok);

box.setDetailedText(in.readAll());

box.exec();

return ;

}

}

void CMainWindow::iniStatusBar()

label1 = new QLabel;

label1->setMinimumSize(200, 25);

label1->setFrameShadow(QFrame::Sunken);

label1->setFrameShape(QFrame::WinPanel);

label2 = new QLabel;

label2->setMinimumSize(200, 25);

label2->setFrameShadow(QFrame::Sunken);

label2->setFrameShape(QFrame::WinPanel);

statusbar->addWidget(label1);

statusbar->addWidget(label2);

}

void CMainWindow::doASave()

{

QString filename =

QFileDialog::getSaveFileName(this,

"另存为", currentFile, "text files *.txt");

if (!filename.isEmpty())

{

saveFile(filename);

}

}

void CMainWindow::doCut()

{

textEdit->cut();

}

void CMainWindow::doCopy()

{

textEdit->copy();

}

void CMainWindow::doClose()

{

maybeSave();

textEdit->setVisible(false);

void CMainWindow::doNew()

{

maybeSave();

isUntited = true;

currentFile = "Untited";

setWindowTitle(currentFile + "[*]");

textEdit->clear();

textEdit->setVisible(true);

setWindowModified(false);

}

void CMainWindow::doOpen()

{

QString fileName = QFileDialog::getOpenFileName(this, "打开文本", QDir::currentPath(), "text files *.txt");

if (!fileName.isEmpty())

{

maybeSave();

if (loadFile(fileName))

{

label2->setText("已读取");

}

}

textEdit->setVisible(true);

}

void CMainWindow::doUndo()

{

textEdit->undo();

}

void CMainWindow::doRedo()

{

textEdit->redo();

}

void CMainWindow::doPaste()

{

textEdit->paste();

}

void CMainWindow::doAll()

{

textEdit->selectAll();

}

void CMainWindow::doSave()

{

if (isUntited)

{

doASave();

}

else

{

saveFile(currentFile);

}

}

void CMainWindow::doFind()

{

CFindDialog *finddlg = new CFindDialog(0);

finddlg->bolding(textEdit);

finddlg->show();

}

void CMainWindow::doQuit()

{

doClose();

delete textEdit;

textEdit = NULL;

qApp->quit();

}

bool CMainWindow::loadFile(const QString &fileName)

{

QFile file(fileName);

if (!file.open(QFile::ReadOnly | QFile::Text))

{

QMessageBox::warning(this,

"读取文件",

QString("无法读取文件%1:\n%2")

.arg(fileName)

.arg(file.errorString()));

return false;

}

else

{

QTextStream in(&file);

QApplication::setOverrideCursor(Qt::WaitCursor);

textEdit->setText(in.readAll());

QApplication::restoreOverrideCursor();

setCurrentFile(fileName);

return true;

}

}

void CMainWindow::setCurrentFile(const QString &fileName) {

currentFile = QFileInfo(fileName).canonicalFilePath();

isUntited = false;

setWindowTitle(currentFile + "[*]");

textEdit->document()->setModified(false);

setWindowModified(false);

}

bool CMainWindow::saveFile(const QString fileName)

{

QFile file(fileName);

if (!file.open(QFile::WriteOnly | QFile::Text))

{

QMessageBox::warning(this,

"保存文件",

QString("无法保存文件%1:\n%2")

.arg(fileName)

.arg(file.errorString()));

return false;

}

QTextStream out(&file);

QApplication::setOverrideCursor(Qt::WaitCursor);

out<toPlainText();

QApplication::restoreOverrideCursor();

setCurrentFile(fileName);

label2->setText("已保存");

return true;

}

void CMainWindow::doWindows()

{

qApp->setStyle("windows");

}

void CMainWindow::doWindowsXp()

{

qApp->setStyle("windowsxp");

}

void CMainWindow::doMotif()

{

qApp->setStyle("motif");

}

void CMainWindow::doCDE()

{

qApp->setStyle("cde");

}

void CMainWindow::doPlastique()

{

qApp->setStyle("plastique");

}

void CMainWindow::doFont()

{

bool ok;

QFont font = QFontDialog::getFont(&ok,textEdit->font(),this,"字体对话框");

if (ok)

{

textEdit->setFont(font);

}

}

void CMainWindow::maybeSave()

{

if (textEdit->document()->isModified())

{

QMessageBox box;

box.setWindowTitle("警告");

box.setIcon(QMessageBox::Warning);

box.setText("文档未保存,是否保存?");

box.setStandardButtons(QMessageBox::Yes | QMessageBox::No);

if (box.exec() == QMessageBox::Yes)

{

doSave();

}

}

}

void CMainWindow::doCursorChanged()

{

int pageNum = textEdit->document()->pageCount();

const QTextCursor cursor = textEdit->textCursor();

int colNum = cursor.columnNumber();

int rowNum = textEdit->document()->blockCount();

label1->setText(QString("%1页%2行%3列

").arg(pageNum).arg(rowNum).arg(colNum));

}

void CMainWindow::updateColor()

{

QPixmap pixmap(32, 32);

QPainter painter(&pixmap);

painter.fillRect(0, 0, 32, 32, fontColor);

QColor lighter = fontColor.light();

painter.setPen(lighter);

QPoint lightFrame[] = {QPoint(0, 31), QPoint(0, 0), QPoint(31, 0) }; painter.drawPolyline(lightFrame, 3);

painter.setPen(fontColor.dark());

QPoint darkFrame[] = {QPoint(1, 31), QPoint(31, 31), QPoint(31, 1) }; painter.drawPolyline(darkFrame, 3);

painter.end();

fontColorAct->setIcon(pixmap);

}

文本编辑器c++实验报告附源代码

四川大学软件学院 实验报告 课程名称数据结构实验课时8 实验项目文本编辑器实验时间12到14周实验目的了解c++类的封装和KMP算法。 实验环境 Windows平台 VC6.0++ 实验内容(算法、程序、步骤和方法) 部分函数创建思想: 创建过程如下: a、定义LinkList指针变量*temp: LinkList *temp; b、定义文本输入变量ch,记录文本行数变量j,记录每行字符数变量i; c、申请动态存储空间:head->next=(LinkList *)malloc(sizeof(LinkList)); d、首行头指针的前驱指针为空:head->pre=NULL; 首行指针:temp=head->next; 首行指针的前驱指针也为空:temp->pre=NULL; 定义没输入字符时文章长度为0:temp->length=0; 初始化为字符串结束标志,防止出现乱码:for(i=0;i<80;i++) temp->data[i]='\0'; e、利用循环进行文本输入 for(j=0;jdata[i]=ch; //给temp指向的行赋值 ···· temp->length++;//行中字符长度加1 if(ch=='#') {NUM=j; break; //文章结束时,Num来记录整个文章的行数 }}} 在字符输入的过程中,如果在单行输入的字符超过了80个字符, 则需要以下操作: 输入字符数大于80,重新分配空间建立下一行 temp->next=(LinkList *)malloc(sizeof(LinkList)) ;

java文本编辑器实验报告

Java考核 课程名称Java程序设计 题目名称文本编辑器的设计与实现学生学院计算机学院 专业班级计算机17(2)班 学号3117004479 学生姓名李泽豪 指导教师赵锐 2018 年12 月11 日

一、课程题目 编程实现一个文本编辑器 使其具有新建、打开、保存,编辑(查找、替换、大小写转换等)、统计(字数、行数、字符数等)、格式(字体设置、字体大小、字体颜色、背景颜色等)等功能。 要求:基于JFrame窗体设计、使用菜单进行功能选择。 提示:字体颜色,背景颜色的设置,可使用javax.swing包中的JColorChooser类的静态方法showDialog()调用标准颜色对话框来完成;文件操作可通过javax.swing包中JColorChooser类中的showSaveDialog()、showOpenDialog()方法调用标准的的文件对话框来完成。 二、题目分析与设计 2.1开发环境 使用Eclipse开发软件 2.2需求分析 简单的文本编辑器提供给用户基本纯文本的文字编辑功能,能够读取计算机本地磁盘中的文本内容,将用户文本导入到磁盘中之中,以及实现基本的字体设置(字体,字号,字体颜色)简单的编辑字体的功能,以及统计(字数,行数,字符数),增强视觉体验的背景颜色功能等,简单而实用。而网络上的各种编辑器,有的功能不足(如自带的记事本),而有些编辑器功能太繁杂,仅以日常应用方面来说,一个文本编辑器只需要简单的功能就够了。 2.3功能构架 本程序要构建的文本编辑器按照题目要求,分为四个方面: (1)“文件”菜单:包括“新建”并提示是否保存已编辑内容,“打开”计算机本地磁盘的文本文件,主动“保存”自己已经编辑好的内容到电脑的磁盘或“另存为”新的文件之中,以及“退出”并提示是否保存已编辑的内容。 (2)“编辑”菜单:包括对已编辑文本的一个“查找与替换”功能,对已编辑英文文本的一个“大小写转换”功能。 (3)“格式”菜单:实现对文本的“字体”设置,“字体大小”以及“字体颜色”,还有

几种常用网页文本编辑器总结

文本编辑器应用总结 一.lhgeditor文本编辑器 lhgeditor组件文件结构: 1. lhgeditor.js:组件的核心JS文件 2. lhgeditor.css:组件的样式表文件 3. images:组件所需的图片都在此文件夹中 以上三个文件为组件所必须的三个文件,组件包中其它以“_”开头的文件为示例的演示文件,实际使用中不需要这些文件。当然框架核心文件lhgcore.js是每个组件都必须用到的文件,记得加载组件前先要加载此文件。 lhgeditor组件使用说明: 1. 在调用组件的页面加载lhgcore.j s和lhgeditor.js两个文件。 2. 在window.onload函数里加入J.editor.add(编辑器的id).init(); 例:

二.nicEdit文本编辑器 标签。 3)引入相关文件 4)创建编辑器 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

C++课程设计简易文本编辑器

目录 第一章课程设计目的和要求 (1) 1.1课程设计的目 (1) 1.2基本要求 (1) 第二章课程设计任务内容 (2) 2.1设计背景 (2) 2.2简易文本编辑器设计内容 (2) 第三章详细设计 (3) 3.1总体结构图 (3) 3.2函数分析 (3) 3.3主函数程序流程图 (4) 3.4子函数流程图 (5) 第四章程序编码与调试 (7) 4.1程序编码 (7) 4.2编码调试 (8) 4.3运行结果 (9) 第五章课程设计心得与体会 (11) 附录1 参考文献 (12) 附录2 源程序代码 (13)

第一章课程设计目的和要求 C语言课程设计是一门实践性非常强的课程,不但要注重c语言程序设计基本知识的学习,更要注重程序设计技能的培养,使学生能够允许渐进地把握c语言程序设计的技能。通过课程设计,培养学生阅读和编写程序的能力,培养计算机程序设计的能力和素质,以及思维方法。初步积累编程经验,打下良好的计算机应用基础。 1.1课程设计的目 1.通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力, 能更好的巩固《c语言程序设计》课程学习的内容 2.掌握工程软件设计的基本方法,强化上级动手编程能力,闯过理论与实践相 结合的难关!更加了解了c语言的好处和其可用性。 3.掌握基本的程序设计过程和技巧,掌握基本的分析问题合理性,通过计算机 求解问题的能力,具备初步的高级语言程设计能力。为后续个门计算机课程 的学习和毕业设计打下结实基础。 4.通过c语言课程设计,使学生了解高级程序设计语言的结构。 1.2 基本要求 1.基本要求: ①要求用VC中的MFC控件打开和保存文件。 ②要求在设计的程序中至少能完成六种编辑功能。 ③完成的程序界面要美观,能够完成六种编辑的全过程。 2.创新要求: ①在记事本中增加工具栏,工具栏中应有常使用的工具按钮; ②在记事本中增加状态栏;

项目一:文本编辑器的设计与实现

课程: C# Windows程序设计学年第_ _学期第周月日教学内容备注 项目一:文本编辑器的设计与实现 【项目背景】 文本编辑器有两类:单文档和多文档文本编辑器。单文档文本编辑器一次只能打开一个文件,如果要打开另一个文件,必须关闭当前打开的文件,微软的写字板程序就是单文档字处理程序。多文档文本编辑器允许同时打开多个文件,每个文件占用一个子窗口,微软的Word程序就是多文档字处理程序。本项目主要介绍建立单文档文本编辑器的方法,通过分析现有文本编辑器的功能与操作过程,利用C#开发一个新的文本编辑器。 【主要内容与技能要求】 (1)会进行复杂窗口设计 (2)会对常见的文本编辑功能进行分析与编码实现 (3)会设计多文档窗口 一、预备知识 本项目主要利用RichTextBox控件来构成文本编辑区域。 1、RichT extBox控件的主要属性 属性SelectedText、SelectionLength、SelectionStart: 属性SelectionFont: 属性SelectionColor: 属性Lines: 属性Modified: 事件SelectionChange: 事件TextChanged: 2、RichT extBox控件的主要方法 方法Clear(): 方法Copy()、Cut()、Paste(): 方法SelectAll(): 方法Find(): 方法SaveFile()和LoadFile():

课程: C# Windows程序设计学年第_ _学期第周月日教学内容备注方法Undo(): 方法Redo(): 二、功能设计与实现 1、剪贴板功能 放RichTextBox控件到窗体。属性Name=richTextBox1,Dock=Fill,Text=""。 private void menuItemEditCut_Click(object sender,EventArgs e) { richTextBox1.Cut(); } //剪切 private void menuItemEditCopy_Click(object sender,EventArgs e) { richTextBox1.Copy(); } //拷贝 private void menuItemEditPaste_Click(object sender,EventArgs e) { richTextBox1.Paste(); } //粘贴 private void menuItemEditUndo_Click(object sender,EventArgs e) { richTextBox1.Undo(); } //撤销 private void menuItemEditRedo_Click(object sender,EventArgs e) { richTextBox1.Redo(); } //恢复 2、存取文件功能 文本编辑器都应具有文件存取功能,菜单顶级菜单项“文件”的弹出菜单中一般包括如下菜单项:新建、打开、关闭、保存和另存为等。需要用到打开文件对话框(OpenFileDialog控件)和保存文件对话框(SaveFileDialog控件)。和 两个对话框的常用属性和方法: 属性Filter:例如Filter=“纯文本文件(*.txt)|*.txt|所有文件(*.*)|*.*” 属性FilterIndex: 属性FileName: 属性InitialDirectory: 属性DefaultExt: 方法ShowDialog(): 存取文件功能实现如下:

细数几款免费好用的在线HTML编辑器

细数几款免费好用的在线HTML编辑器 先普及一下基本知识:什么叫在线HTML编辑器?说得简单点,在线HTML编辑器就是在网上发帖子、写博客的那个带编辑功能的框框,可以进行图文排版等操作。当年本菜鸟做网站的时候,曾经自己用javascript编写过一个比较简单的在线HTML编辑器,用于文本内容的排版。但是因为水平有限,很多功能都无法实现。后来有了eWebEditor,功能确实强大,但这个编辑器是个收费的软件,并且正因为功能强大,也就显得过重,一些轻量的场合不是太适用。那有没有既免费、又功能强大、还能适应轻量场合的在线HTML编辑器呢?答案肯定是有的。这首先要感谢这些年来有一批奉献精神的程序猿们不断推进共享软件的开发,让我们得以享受他们的成果。一、百度出品的UEditorUEditor是由百度web 前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码。特别要说的是,头条号后台发布文章的编辑器就是用的UEditor!百度UEditorUEditor还有一个轻量版的,叫做UMeditor,简称UM。UM是为满足广大门户网站对于简单发帖框,或者回复框需求所定制的在线HTML编辑器。主要特点是容量和加载速度上的改变,主文件的代码量为139k,而且放弃了使用传统的iframe模式,采用了

div的加载方式,以达到更快的加载速度和零加载失败率。UM的第一个使用者是百度贴吧,以经受贴吧每天几亿的pv 的考验,功能设计应当是最优化的了。当然随着代码的减少,UM的功能对于UE来说还是有所减少,但也有增加,比如拖拽图片上传,chrome的图片拖动改变大小等。百度UEditor界面二、xhEditor开源HTML编辑器xhEditor是一个基于jQuery开发的简单迷你并且高效的可视化HTML编辑器,基于网络访问并且兼容IE 6.0+,Firefox 3.0+,Opera 9.6+,Chrome 1.0+,Safari 3.22+。xhEditor完全基于Javascript 开发,可以应用在任何的服务端语言环境下,例如:PHP、ASP、https://www.360docs.net/doc/3313596494.html,、JA V A等。可以在CMS、博客、论坛、商城等互联网平台上完美的嵌入运行,能够非常灵活简单的和您的系统实现完美的无缝衔接。 主要特点:精简迷你:初始加载4个文件,包括:1个js(50k)+2个css(10k)+1个图片(5k),总共65k。若js和css文件进行gzip压缩传输,可以进一步缩减为24k左右。使用简单:简单的调用方式,加一个class属性就能将textarea变成一个功能丰富的可视化编辑器。无障碍访问:提供WAI-ARIA全面支持,全键盘精细操作,全程语音向导,提供完美无障碍访问体验,充分满足残疾人的上网需求。内置Ajax上传:内置强大的Ajax上传,包括HTML4和HTML5上传支持(多文件上传、真实上传进度及文件拖放上传),剪切板上传及远程抓

C++课程设计报告(简易文本编辑器)

面向对象程序设计课程设计报告 (2011/2012学年第二学期) 题目名称简单文本编辑器的设计 系部 专业计算机科学与技术 班级 学生 完成时间 2012年 6 月 指导老师

在文本编辑器出现前,人们用打孔机把计算机文字打到穿孔卡片上。文字存放于一个装着这样的薄卡片的盒子里,可以用读卡器来阅读它。 第一个文本编辑器是一种行编辑器,它运行在打字机型的终端上,这种编辑器并不具备在窗口和屏幕中显示的功能。它包含了一些非常短的命令(为了减少打字量)。其中一个命令能够把文件的指定部分通过打字机打印出来。编辑光标是想象中的一个插入点,通过特殊命令,可以把它移动到特定内容字符串所在的行。随后,内容字符串又被扩展成正则表达式。如果想看到文件的变化,你需要把它打印出来。相对于穿孔机来说,人们认为这种基于行的文本编辑器具有革命性的进步。如果没有它,用户就需要把那些处理文本的命令打成专用的卡片,并在编辑文件时使用这些卡片。 当带有显示屏的计算机终端出现后,基于显示屏的文本编辑器开始流行起来。最早的全屏编辑器中,有一种叫做O26,它是于1967年为CDC 6000系列机器的操作控制台而作的。另外一个早期的全屏编辑器是vi。vi诞生于20世纪70年代,至今,它仍是Unix和Linux的标准编辑器。全屏编辑器对视频终端的销售起到了促进的作用。 文本编辑器在Windows的应用中是一个非常重要的项目,在过去十数年中,微软对windows文本编辑器有多个版本的升级改进,而基于其他的编程环境的文本编辑器也是多如牛毛,今天我们用MFC可视化编译环境做一个简易的文本编辑器。

引言 (2) 1.课程设计目的和意义 (4) 2.详细设计 (4) 2.1需求描述 (4) 2.1.1文件 (4) 2.1.2编辑 (4) 2.1.3应用 (5) 2.1.4帮助 (5) 2.1.5高级 (5) 2.2功能描述 (5) 2.2.1文本编辑区 (5) 2.2.2文件 (7) 2.2.3编辑 (15) 2.2.4应用 (16) 2.2.5帮助 (21) 2.2.6高级 (22) 2.2.7菜单栏 (25) 2.2.7图标 (26) 2.3程序运行说明 (27) 3.课程设计总结 (30) 3.1编程日志 (30) 3.3测试报告 (31) 4.心得体会 (31) 5.参考文献 (31)

ueditor1.4.3jsp utf-8版配置使用教程

Ueditor在线编辑器配置示例 1.简介 UEditor 是由百度「FEX前端研发团队」开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码。 2.下载 首页地址:https://www.360docs.net/doc/3313596494.html,/website/index.html,点击下载,可以根据需要下载php、aps、jsp、.net版本。由于1.4版本和1.3版本内容变更较大,本例中使用了最新版本1.4.3.1 jsp utf-8 版本进行测试。 3.配置 下载ueditor后,放入系统的js库中,由于本例的相同功能的ewebeitor 放在webroot下,本例中也直接放入的webroot下,结构图如下:

首先配置通用配置的控制器路径,文件名为:ueditor.config.js。此文件配置需要对应下载的版本,即jsp版对应修改: serverUrl: URL + "jsp/controller.jsp" 修改了通用配置后,还需要修改对应的上传文件、图片等路径,我们需要根据我们配置的版本去设置对应目录的内容,jsp版本如下:

实际配置如下图: 下面还有对应图片、视频的配置,与图片配置类似。 4.问题 4.1jar问题

需要的jar都已在ueditor中包含,直接拷贝至项目的lib中并加入classpath中即可。 1.4.3版本需要commons-io- 2.4.jar支持。所以在buildpath中需要将该包放置靠前。 4.2拦截器问题 对于使用了Struts2或配置了其他拦截器的,需要将该请求放行如Struts2一般配置为: 对于此类会拦截jsp的请求的配置,可以根据项目需要, 1.改为*.action,*.do之类的请求匹配 2.加入自己的拦截器,如本例所配置的 com.linewell.core.filter.ExtendStrutsPrepareFilter中, 不解的可以参照: https://www.360docs.net/doc/3313596494.html,/krysml/article/details/9006533

汇编语言实现文本编辑器

汇编语言课程设计 题目文本方式下字处理程序的设计与实现 学院计算机科学与技术学院 专业计算机科学与技术 班级计算机科学与技术0705 课程设计任务书 题目: 文本方式下字处理程序的设计与实现 初始条件: 理论:完成了《汇编语言程序设计》课程,对微机系统结构和80系列指令系统有了较深入的理解,已掌握了汇编语言程序设计的基本方法和技巧。 实践:完成了《汇编语言程序设计》的4个实验,熟悉了汇编语言程序的设计环境并掌握了汇编语言程序的调试方法。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等 具体要求) 理解键盘和显示器接口的工作原理,掌握BIOS键盘和显示器中断调用的使用方法,掌握复杂内存数据结构的定义和管理方法。具体的设计任务及要求: 1)清晰且易于操作的用户界面;动态显示光标的当前位置; 2)在文本编辑区接受并保存输入信息; 3)光标上移,下移,左移,右移; 4)允许删除当前光标前的字符; 5)将编辑文本存盘,读出并显示硬盘中的指定文件。(任选) 在完成设计任务后,按要求撰写课程设计说明书;对课程设计说明书的具体要求请见课程设计指导书。 阅读资料:

1)《IBM—PC汇编语言程序设计实验教程》3.3节 2)《IBM—PC汇编语言程序设计(第2版)》9.1节 时间安排: 设计安排一周:周1、周2:完成系统分析及设计。 周3、周4:完成程序调试,和验收。 周5:撰写课程设计报告。 指导教师签名:年月日 系主任(或责任教师)签名:年月日 一、系统描述 1、目的 (1)掌握计算机汇编语言的使用。学完汇编课程,理解和掌握键盘和显示器接口的工作原理,掌握BIOS键盘和显示器中断调用的使用方法,掌握复杂内存数据结构 的定义和管理方法。 (2)通过设计、编制、调试一个文本方式下字处理程序。实现一个简单的文本编辑器的基本功能 2、设计内容 1)清晰且易于操作的用户界面; 2)动态显示光标的当前位置; 3)在文本编辑区可以输入字符信息; 4)光标上移,下移,左移,右移,还可以回车,使用home键、end键退格键; 5)允许删除当前光标前的字符; 6)将编辑文本存盘,读出并显示硬盘中的指定文件。 3、开发平台 所使用的系统:Windows XP 程序开发工具:Masn for Windows 6.0 集成实验开发环境 序设计语言:IBM-PC 汇编语言 二、文本编辑译系统的概要设计 文本编辑程序要实现简单的文本编辑器基本功能。 1.设计一个友好,易于操作的界面,界面可仿照windows记事本,但windows记事本 的菜单项不好制作,所以将主要功能说明制作到边框,方便使用即可。并且实现在

相关文档
最新文档