文本编辑器中替换对话框的设计与实现
生活随笔
收集整理的這篇文章主要介紹了
文本编辑器中替换对话框的设计与实现
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1 文本編輯器中替換對話框的設(shè)計(jì)與實(shí)現(xiàn)
1 文本編輯器中替換對話框的設(shè)計(jì)與實(shí)現(xiàn)
替換對話框需求分析:
- 可復(fù)用軟件部分。
- 查找文本框中的指定字符串。
- 替換單個(gè)指定字符串。
- 替換所有指定字符串。
附加需求:
- 點(diǎn)擊關(guān)閉按鈕后隱藏。
替換對話框的設(shè)計(jì)與實(shí)現(xiàn):
替換對話框的界面布局:
替換算法流程圖:
Main Window與ReplaceDialog之間的關(guān)系圖:
ReplaceDialog.h:
ReplaceDialog.cpp:
#include "ReplaceDialog.h"ReplaceDialog::ReplaceDialog(QWidget *parent, QPlainTextEdit* pText) :FindDialog(parent, pText) {initControl();connectSlot();setWindowTitle("Replace"); }void ReplaceDialog::initControl() {m_replaceLbl.setText("Replace To:");m_replaceBtn.setText("Replace");m_replaceAllBtn.setText("Replace All");m_layout.removeWidget(&m_matchChkBx);m_layout.removeWidget(&m_radioGrpBx);m_layout.removeWidget(&m_closeBtn);m_layout.addWidget(&m_replaceLbl, 1, 0);m_layout.addWidget(&m_replaceEdit, 1, 1);m_layout.addWidget(&m_replaceBtn, 1, 2);m_layout.addWidget(&m_matchChkBx, 2, 0);m_layout.addWidget(&m_radioGrpBx, 2, 1);m_layout.addWidget(&m_replaceAllBtn, 2, 2);m_layout.addWidget(&m_closeBtn, 3, 2); }void ReplaceDialog::connectSlot() {connect(&m_replaceBtn, SIGNAL(clicked()), this, SLOT(onReplaceClicked()));connect(&m_replaceAllBtn, SIGNAL(clicked()), this, SLOT(onReplaceAllClicked())); }void ReplaceDialog::onReplaceClicked() {QString target = m_findEdit.text();QString to = m_replaceEdit.text();if( (m_pText != NULL) && (target != "") && (to != "") ){QString selText = m_pText->textCursor().selectedText();if( selText == target ){m_pText->insertPlainText(to);}onFindClicked();} }void ReplaceDialog::onReplaceAllClicked() {QString target = m_findEdit.text();QString to = m_replaceEdit.text();if( (m_pText != NULL) && (target != "") && (to != "") ){QString text = m_pText->toPlainText();text.replace(target, to, m_matchChkBx.isChecked() ? Qt::CaseSensitive : Qt::CaseInsensitive);m_pText->clear();m_pText->insertPlainText(text);} }參考資料:
總結(jié)
以上是生活随笔為你收集整理的文本编辑器中替换对话框的设计与实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计数信号量的获取与释放
- 下一篇: 开盘前15分钟可以交易吗