文本编辑器中查找对话框及功能实现

1 查找对话框界面实现

查找对话框需求分析:

  • 可复用软件部分。
  • 查找文本框中的指定字符串。
  • 能够指定查找方向。
  • 支持大小写敏感查找。

附加需求:

  • 点击关闭按钮后隐藏。
    在这里插入图片描述
    查找对话框的架构与设计:
    在这里插入图片描述
    查找对话框的界面与布局:
    在这里插入图片描述
    FindDialog.h:
#ifndef _FINDDIALOG_H_
#define _FINDDIALOG_H_

#include <QDialog>
#include <QGridLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QRadioButton>
#include <QCheckBox>
#include <QGroupBox>

class FindDialog : public QDialog
{
   
   
    Q_OBJECT

protected:
	/*
	* 必须注意,这里的初始化顺序很重要,m_radioGrpBx必须在m_hbLayout之前声明,如果在其后m_radioGrpBx析构时会将m_hbLayout进行析构,但是m_hbLayout是栈对象,被delete就会出问题,一定要注意!!!
	*/
    QGroupBox m_radioGrpBx;

    QGridLayout m_layout;
    QHBoxLayout m_hbLayout;

    QLabel m_findLbl;
    QLineEdit m_findEdit;
    QPushButton m_findBtn;
    QPushButton m_closeBtn;
    QCheckBox m_matchChkBx;
    QRadioButton m_forwardBtn;
    QRadioButton m_backwardBtn;

public:
    explicit FindDialog(QWidget* parent = 0);
    bool event(QEvent* evt);
    
signals:
    
public slots:
    
};

#endif // _FINDDIALOG_H_

FindDialog.cpp:

#include "FindDialog.h"
#include <QEvent>

FindDialog::FindDialog(QWidget *parent) : QDialog(parent, Qt::WindowCloseButtonHint | Qt::Drawer)
{
   
   
    m_findLbl.setText("Find What:");
    m_findBtn.setText("Find Next");
    m_closeBtn.setText("Close");
    m_matchChkBx.setText("Match Case");
    m_backwardBtn.setText("Backward");
    m_forwardBtn.setText("Forward");
    m_forwardBtn.setChecked(true);
    m_radioGrpBx.setTitle("Direction");

    m_hbLayout.addWidget(&m_forwardBtn);
    m_hbLayout.addWidget(&m_backwardBtn);

    m_radioGrpBx.setLayout(&m_hbLayout);

    m_layout.setSpacing(10);
    m_layout.addWidget(&m_findLbl, 0, 0);
    m_layout.addWidget(&m_findEdit, 0, 1);
    m_layout.addWidget(&m_findBtn, 0, 2);
    m_layout.addWidget(&m_matchChkBx, 1, 0);
    m_layout.addWidget(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值