如果对您有用记得点赞
QPlainTextEdit
QPlainTextEdit 类提供了一个用于编辑和显示纯文本的小部件,常用于显示多行文本或简单文本。
QTextEdit与QPlainTextEdit区别:
1.QPlainTextEdit是一个高级的查看器/编辑器,支持纯文本。它被优化为处理大型文档和快速响应用户输入。
2.QTextEdit是一个高级的所见即所得查看器/编辑器,支持使用html样式的标签进行富文本格式化。它被优化为处理大型文档和快速响应用户输入。
举例:
一个 QPlainTextEdit 来读取本当前工程里的一个文件,并用一个 RadioButton 里将 QPlainTextEdit 设为只读。
头文件“mainwindow.h”具体代码如下。
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QPlainTextEdit>
#include <QRadioButton>
#include <QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
/* 声明对象 */
QPlainTextEdit *plainTextEdit;
QRadioButton *radioButton;
private slots:
/* 槽函数 */
void radioButtonClicked();
};
#endif // MAINWINDOW_H
源文件“mainwindow.cpp”具体代码如下。
#include "mainwindow.h"
#include <QDir>
#include <QTextStream>
#include <QCoreApplication>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
/* 设置当前程序的工作目录为可执行程序的工作目录 */
QDir::setCurrent(QCoreApplication::applicationDirPath());
this->setGeometry(0, 0, 800, 480);
plainTextEdit = new QPlainTextEdit(this);
plainTextEdit->setGeometry(0, 50, 800, 430);
radioButton = new QRadioButton(this);
radioButton->setGeometry(650, 20, 100, 20);
radioButton->setText("只读模式");
/* 打开可执行程序目录里的moc_mainwindow.cpp,注意如果是Windows下
moc_mainwindow.cpp并不在当前目录,而在上一级目录"../moc_mainwindow.cpp"*/
QFile file("moc_mainwindow.cpp");
/* 以只读模式打开,但是可以在plainTextEdit里编辑 */
file.open((QFile::ReadOnly | QFile::Text));
/* 加载到文件流 */
QTextStream in(&file);
/* 从文本流中读取全部 */
plainTextEdit->insertPlainText(in.readAll());
/* 信号槽连接 */
connect(radioButton, SIGNAL(clicked()), this,
SLOT(radioButtonClicked()));
}
MainWindow::~MainWindow()
{
}
void MainWindow::radioButtonClicked()
{
/* 检查radioButton是否选中 */
if(radioButton->isChecked()) {
/* 设置为只读模式 */
plainTextEdit->setReadOnly(true);
} else {
/* 设置为非只读模式 */
plainTextEdit->setReadOnly(false);
}
}
运行效果: