第四十八课、替换对话框的设计与实现------------------狄泰软件学院
2017-02-21 09:28
176 查看
一、替换对话框
1、替换对话框的需求分析(1)、可复用软件部件
(2)、查找文本框中指定的字符
(3)、替换单个指定的字符
(4)、替换所有指定的字符
附加需求:点击关闭按钮后隐藏
#include "ReplaceDialog.h" ReplaceDialog::ReplaceDialog(QWidget *parent, QPlainTextEdit* pText) : FindDialog(parent, pText) { initControl(); connect(&m_replaceButton, SIGNAL(clicked()), this, SLOT(onReplaceButtonClicked())); connect(&m_replaceAllButton, SIGNAL(clicked()), this, SLOT(onReplaceAllButtonClicked())); setWindowTitle("替换"); setLayout(&m_gLayout); } void ReplaceDialog::initControl() { m_replaceButton.setText("替换"); m_replaceAllButton.setText("全部替换"); m_replaceAsLabel.setText("替换为: "); m_gLayout.removeWidget(&m_checkBox); m_gLayout.removeWidget(&m_gBox); m_gLayout.removeWidget(&m_cancleButton); m_gLayout.addWidget(&m_replaceAsLabel, 1, 0); m_gLayout.addWidget(&m_replaceEdit, 1, 1); m_gLayout.addWidget(&m_replaceButton, 1, 2); m_gLayout.addWidget(&m_replaceAllButton, 2, 2); m_gLayout.addWidget(&m_checkBox, 3, 0); m_gLayout.addWidget(&m_gBox, 3, 1); m_gLayout.addWidget(&m_cancleButton, 3, 2); } void ReplaceDialog::onReplaceButtonClicked() { QString target = m_findLineEdit.text(); QString to = m_replaceEdit.text(); if(m_plainTextEdit != NULL && target !="" && to != "") { QString text = m_plainTextEdit->toPlainText(); QString selText = m_plainTextEdit->textCursor().selectedText(); if(selText == target) { m_plainTextEdit->insertPlainText(to); } onFindButtonClicked(); } } void ReplaceDialog::onReplaceAllButtonClicked() { QString target = m_findLineEdit.text(); QString to = m_replaceEdit.text(); if(m_plainTextEdit != NULL && target !="" && to != "") { QString text = m_plainTextEdit->toPlainText(); text.replace(target, to, m_checkBox.isChecked()? Qt::CaseSensitive : Qt::CaseInsensitive); m_plainTextEdit->clear(); m_plainTextEdit->setPlainText(text); } }
可复用替换对话框实现文件
文本编辑器其它修改的地方:
头文件:
UI文件:
Slots.cpp:
二、小结
(1)、替换对话框的功能涵盖了查找对话框的功能(2)、替换对话框可以继承自查找对话框
(3)、替换功能的实现是基于查找算法完成的
(4)、替换对话框是一个可复用的软件部件
相关文章推荐
- 用MFC实现“查找/替换”对话框
- Java类中热替换的概念、设计与实现(4)
- Java 类的热替换 —— 概念、设计与实现
- java-技术-Java类中热替换的概念、设计与实现
- Java 类的热替换 —— 概念、设计与实现
- Java 类的热替换 —— 概念、设计与实现(转)
- Java 类的热替换 —— 概念、设计与实现
- Java 类的热替换 —— 概念、设计与实现
- 【转】Cocos2d-x 弹出对话框的设计与实现
- Cocos2d-x 弹出对话框的设计与实现
- Java 类的热替换 —— 概念、设计与实现
- Java 类的热替换 —— 概念、设计与实现
- Android UI设计之<七>自定义Dialog,实现各种风格效果的对话框
- VC++开发垃圾文件清理软件之三:程序的界面设计与实现----对话框界面
- Java 类的热替换 —— 概念、设计与实现
- Java类中热替换的概念、设计与实现
- (转)Java 类的热替换 —— 概念、设计与实现
- Java 类的热替换 —— 概念、设计与实现
- 【转】Cocos2d-x 弹出对话框的设计与实现
- cocos2d-x3.x 设计与实现弹出对话框