资源简介

使用Qt实现的,功能基本和Windows自带的记事本一样。不同的是这个无论打开多少个文件,多少个窗口,都只保持一个进程(单进程,多主窗口),另外里面增加了猜测utf-8编码集的功能,用于显示无BOM格式的UTF-8源代码时不乱码。

资源截图

代码片段和文件信息

#include “finddialog.h“

finddialog::finddialog(QWidget *parent): QDialog(parent)
{
    setupUi(this);

    connect(cancelButton SIGNAL(clicked())
            this SLOT(close()));
    connect(lineEdit SIGNAL(textChanged(const QString &))
            this SLOT(enableFindButton(const QString &)));
    connect(findButton SIGNAL(clicked())
            this SLOT(findClicked()));

    keyword_last = ““;
}

void finddialog::enableFindButton(const QString &text)
{
    findButton->setEnabled(!text.isEmpty());
}

void finddialog::findClicked()
{
    QTextDocument::FindFlags ff = 0;

    if (backwardButton->isChecked()) {
        ff |= QTextDocument::FindBackward;
    }

    if (caseBox->isChecked()) {
        ff |= QTextDocument::FindCaseSensitively;
    }

    keyword_last = lineEdit->text();
    emitStatus();
    emit to_find(keyword_last ff);
}

void finddialog::set_keyword(QString keyword)
{
    keyword_last = keyword;
    lineEdit->setText(keyword_last);
}

void finddialog::set_case(bool cs)
{
    caseBox->setChecked(cs);
}

void finddialog::set_forward()
{
    forwardButton->setChecked(true);
}

bool finddialog::no_keyword()
{
    return keyword_last.isEmpty();
}

void finddialog::closeEvent(QCloseEvent *event)
{
    lineEdit->setText(keyword_last);
}

void finddialog::emitStatus()    //同步查找、替换对话框的状态
{
    emit keyword_changed(keyword_last);
    emit case_changed(caseBox->isChecked());
}

评论

共有 条评论