/****************************************************************************
**
** File : finddialog.cpp
**
****************************************************************************/ ![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
#include <QtGui>
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
#include
"finddialog.h"
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
FindDialog::FindDialog(QWidget *parent)
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
:QDialog(parent)
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
{
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
label=
new QLabel(tr(
"Find &what"));
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
lineEdit=
new QLineEdit;
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
label->setBuddy(lineEdit);
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
caseCheckBox=
new QCheckBox(tr(
"Match &case"));
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
backwardCheckBox=
new QCheckBox(tr(
"Search &backward"));
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
findButton=
new QPushButton(tr(
"&Find"));
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
findButton->setDefault(
true);
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
findButton->setEnabled(
false);
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
closeButton=
new QPushButton(tr(
"Close"));
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
connect(lineEdit,SIGNAL(textChanged(
const QString&)),
this,SLOT(enableFindButton(
const QString&)));
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
connect(closeButton,SIGNAL(clicked()),
this,SLOT(close()));
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
connect(findButton,SIGNAL(clicked()),
this,SLOT(findClicked()));
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
QHBoxLayout *leftTopLayout=
new QHBoxLayout;
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
leftTopLayout->addWidget(label);
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
leftTopLayout->addWidget(lineEdit);
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
QVBoxLayout *leftLayout=
new QVBoxLayout;
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
leftLayout->addLayout(leftTopLayout);
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
leftLayout->addWidget(caseCheckBox);
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
leftLayout->addWidget(backwardCheckBox);
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
QVBoxLayout *rightLayout=
new QVBoxLayout;
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
rightLayout->addWidget(findButton);
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
rightLayout->addWidget(closeButton);
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
rightLayout->addStretch();
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
QHBoxLayout *mainLayout=
new QHBoxLayout;
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
mainLayout->addLayout(leftLayout);
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
mainLayout->addLayout(rightLayout);
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
setLayout(mainLayout);
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
setWindowTitle(tr(
"Find Dialog"));
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
setFixedHeight(sizeHint().height());
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
}
void FindDialog::enableFindButton(
const QString &text)
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
{
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
findButton->setEnabled(!text.isEmpty());
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
}
void FindDialog::findClicked()
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
{
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
QString text=lineEdit->text();
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
Qt::CaseSensitivity cs=caseCheckBox->isChecked()?Qt::CaseSensitive:Qt::CaseInsensitive;
if(backwardCheckBox->isChecked())
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
{
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
emit findPrevious(text,cs);
//emit 发射信号 ![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
}
else{
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
emit findNext(text,cs);
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
}
![InBlock.gif](http://xcf007.blog.51cto.com/images/editer/InBlock.gif)
}