記事ディレクトリ
1。概要
QT には一般的に使用されるテキスト編集クラスが 3 つあります。
- 1.QLineEdit: 通常のテキストの単一行
- 2.QTextEdit: 複数行のリッチ テキスト
- 3.QPlainTextEdit: 複数行のプレーンテキスト
リッチ テキストとは、リッチ テキスト形式を指します。写真やメディア関連の編集が可能です。
上記 3 つのテキスト編集クラスの継承関係は次のとおりです。
2 Qライン編集
単一行テキストは通常、入力データの正確性を確保するために、ユーザーの入力を制限するバリデーターを使用して構成する必要があります。
たとえば、整数の最小入力範囲を 0 ~ 200 に制限していますが、実際の入力は 200 を超える可能性がありますが、1 行のテキストとして返されるのは上限の 200 のみです。
QLineEdit *m_lineEdit = new QLineEdit(this);
QValidator *m_validator = new QIntValidator(0, 200, this);
m_lineEdit->setValidator(m_validator);
//QIntValidator *m_validator = new QIntValidator(0, 200, this);
このタイプのバリデーターの各クラスの継承関係は下図に示されており、すべて QValidator から継承されています。
上記に関しては、整数の使用を制限しているだけですが、入力範囲を超えており、テキストボックスへの入力は可能となっており、実態に即していないため、正規表現に関するいくつかの制限が派生します。
//限制只能输入数字
m_lineEdit->setValidator(new QRegExpValidator(QRegExp("[0-9]+$")));
//限制只能输入数字和字母
m_lineEdit->setValidator(new QRegExpValidator(QRegExp("[a-zA-Z0-9]+$")));
//限制只能输入大写字母
m_lineEdit->setValidator(new QRegExpValidator(QRegExp("^[A-Z]+$")));
よく使用されるメンバー関数のいくつか
//setPlaceholderText用来设置初始化默认显示的值
m_lineEdit->setPlaceholderText(QString::fromLocal8Bit("int"));
// 用于清空单行文本的显示
m_lineEdit->clear();
// 用于显示相关的文本
m_lineEdit->setText("click");
// 可以通过text()获取当前相关的文本,做demo的时候可以做成如下方式来查看
out_lineEdit->setText(m_lineEdit->text());
3 Qテキスト編集
setText テキストボックスの内容を設定します
setPlainText と insertPlainText はどちらもコンテンツの挿入に関連しています。
setPlainText はテキスト コンテンツを再度クリアします。
insertPlainText がクリアされていない場合、現在ポイントされているテキストの後に関連コンテンツが挿入されます。
m_textEdit->setPlainText("set");
m_textEdit->insertPlainText("insert");
デモコードは次のとおりです。
2 つのボタンはそれぞれ 2 つのメンバー関数に接続されており、それらがどのように挿入されるかを観察できます。
QTextEdit *m_textEdit= new QTextEdit;
QTextEdit *m_outExtEdit= new QTextEdit;
QVBoxLayout *v_layout = new QVBoxLayout;
v_layout->addWidget(m_textEdit);
v_layout->addWidget(m_outExtEdit);
QTextCursor cursor = m_textEdit->textCursor();
QPushButton *btn1 = new QPushButton("set");
QPushButton *btn2 = new QPushButton("insert");
v_layout->addWidget(btn1);
v_layout->addWidget(btn2);
connect(btn1,&QPushButton::clicked, [=](){
m_textEdit->setPlainText("set");
}
);
static int num = 0;
connect(btn2,&QPushButton::clicked, [=](){
num++;
m_textEdit->insertPlainText(QString::number(num));
}
);
setLayout(v_layout);
4 Qプレーンテキスト編集
これは上記の 2 つのコントロールと多くのメンバー関数と同じで、使用するときに変なものを挿入できないだけです。
insertPlainTextメンバー関数もあります
ポインターの位置を設定する setTextCursor メンバー関数