一、文本编辑组件
1、Qt支持三种常用的文本编辑组件
(1)、QLineEdit:单行文本编辑组件
(2)、QTextEdit:多行富文本(有图片、视频等)编辑组件
(3)、QPlainTextEdit:多行普通文本编辑组件
2、Qt中常用文本编辑组件的继承层次图
3、不同文本组件的特性比较
4、Qt中常用文本编辑组件内置功能
1、初探文本编辑组件
MainWindow.cpp
#include "MainWindow.h"
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),
lineEdit(this), plainEdit(this), textEdit(this)
{
resize(600, 420);
lineEdit.move(20, 20);
lineEdit.resize(560, 100);
lineEdit.insert("QLineEdit");
lineEdit.insert("\n");
lineEdit.insert("<img src=\"C:\\Users\\hp\\Desktop\\D.T.png\" />");
plainEdit.move(20, 130);
plainEdit.resize(560, 130);
plainEdit.insertPlainText("QPlainTextEdit");
plainEdit.insertPlainText("\n");
plainEdit.insertPlainText("<img src=\"C:\\Users\\hp\\Desktop\\D.T.png\" />");
textEdit.move(20, 270);
textEdit.resize(560, 130);
textEdit.insertPlainText("QTextEdit");
textEdit.insertPlainText("\n");
textEdit.insertHtml("<img src=\"C:\\Users\\hp\\Desktop\\D.T.png\" />");
}
MainWindow::~MainWindow()
{
}
MainWindow.cpp
2、NopePad:
MainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QString>
#include <QtGui/QMainWindow>
#include <QToolBar>
#include <QIcon>
#include <QSize>
#include <QStatusBar>
#include <QLabel>
#include <QPlainTextEdit>
class MainWindow : public QMainWindow
{
Q_OBJECT
private:
QPlainTextEdit mainEdit;
QLabel statusLabel;
MainWindow(QWidget *parent = 0);
MainWindow(const MainWindow& obj);
MainWindow* operator = (const MainWindow& obj);
bool construct();
bool initMenuBar();//菜单栏
bool initToolBar();//工具栏
bool initStatusBar();//状态栏
bool initinitMainEditor();//编辑窗口
bool initFileMenu(QMenuBar* mb);//文件菜单
bool initEditMenu(QMenuBar* mb);//编辑菜单
bool initFormatMenu(QMenuBar* mb);//格式菜单
bool initViewMenu(QMenuBar* mb);//视图菜单
bool initHelpMenu(QMenuBar* mb);//帮助菜单
bool initFileToolItem(QToolBar* tb);
bool makeAction(QAction*& action, QString text, int ket);//菜单项
bool makeAction(QAction*& action, QString tip, QString icon);
public:
static MainWindow* NewInstance();
~MainWindow();
};
#endif // MAINWINDOW_H
MainWindow.h
MainWindow.cpp
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QString>
#include <QtGui/QMainWindow>
#include <QToolBar>
#include <QIcon>
#include <QSize>
#include <QStatusBar>
#include <QLabel>
#include <QPlainTextEdit>
class MainWindow : public QMainWindow
{
Q_OBJECT
private:
QPlainTextEdit mainEdit;
QLabel statusLabel;
MainWindow(QWidget *parent = 0);
MainWindow(const MainWindow& obj);
MainWindow* operator = (const MainWindow& obj);
bool construct();
bool initMenuBar();//菜单栏
bool initToolBar();//工具栏
bool initStatusBar();//状态栏
bool initinitMainEditor();//编辑窗口
bool initFileMenu(QMenuBar* mb);//文件菜单
bool initEditMenu(QMenuBar* mb);//编辑菜单
bool initFormatMenu(QMenuBar* mb);//格式菜单
bool initViewMenu(QMenuBar* mb);//视图菜单
bool initHelpMenu(QMenuBar* mb);//帮助菜单
bool initFileToolItem(QToolBar* tb);
bool makeAction(QAction*& action, QString text, int ket);//菜单项
bool makeAction(QAction*& action, QString tip, QString icon);
public:
static MainWindow* NewInstance();
~MainWindow();
};
#endif // MAINWINDOW_H
MainWindow.h
main.cpp
#include <QtGui/QApplication>
#include "MainWindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow* w = MainWindow::NewInstance();
int ret = -1;
if(w != NULL)
{
w->show();
ret = a.exec();
}
delete w;
return ret;
}
main.cpp
二、小结
(1)、Qt支持三种常用的文本编辑组件
(2)、Qt中的文本编辑组件封装了常用的编辑功能
A、QLineEdit:单行文本编辑组件
B、QTextEdit:多行富文本编辑组件
C、QPlainTextEdit:多行普通文本编辑组件