main.cpp (1 K) 下载次数:2
dialog.cpp (2 K) 下载次数:2
dialog.h (1 K) 下载次数:2
findDialog.pro (1 K) 下载次数:3 把
文件直接贴上来
头文件dialog.h
#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>namespace Ui{
class Dialog;}
class QCheckBox;
class QLabel;
class QLineEdit;
class QPushButton;
class Dialog :
public QDialog{
Q_OBJECTpublic:
explicit Dialog(QWidget
*parent
=
0);
~
Dialog();
signals:
//定义信号 void findNext(
const QString &str,Qt::CaseSensitivity
cs);
void findPrevious(
const QString
&str,Qt::CaseSensitivity
cs);
private slots:
//定义槽 void findClicked();
void enableFindButton(
const QString
&text);
private:
QLabel *
label;
QLineEdit *
lineEdit;
QCheckBox *
caseCheckBox;
QCheckBox *
backwardCheckBox;
QPushButton *
findButton;
QPushButton *
closeButton;};
#endif // DIALOG_H
dialog.cpp#include <QtGui>#include "dialog.h"Dialog::
Dialog(QWidget
*parent)
:
QDialog(parent){
label=
new QLabel(tr(
"Find &what:"));
lineEdit=
new QLineEdit;
label->setBuddy(
lineEdit);
caseCheckBox=
new QCheckBox(tr(
"Match &case"))
;
backwardCheckBox=
new QCheckBox(tr(
"Search &backward"))
;
findButton=
new QPushButton(tr(
"&Find"))
;
findButton->setDefault(
true);
findButton->setEnabled(
false);
closeButton-=
new QPushButton(tr(
"Close"))
;
connect(
lineEdit,
SIGNAL(textChange(
const QString
&)),
this,
SLOT(enableFindButton(
const QString
&)));
connect(
findButton,
SIGNAL(clicked()),
this,
SLOT(findClicked()));
connect(
closeButton,
SIGNAL(clicked()),
this,
SLOT(colse()));
QHBoxLayout
*topLeftLayout=
new QHBoxLayout;
topLeftLayout->addWidget(
label);
topLeftLayout->addWidget(
lineEdit);
QVBoxLayout
*leftLayout=
new QVBoxLayout;
leftLayout->addLayout(topLeftLayout);
leftLayout->addWidget(
caseCheckBox);
leftLayout->addWidget(
backwardCheckBox);
QVBoxLayout
*rightLayout=
new QVBoxLayout;
rightLayout->addWidget(
findButton);
rightLayout->addWidget(
closeButton);
rightLayout->addStretch();
QHBoxLayout
*mainLayout=
new QHBoxLayout;
mainLayout->addLayout(leftLayout);
mainLayout->addLayout(rightLayout);
setLayout(mainLayout);
setWindowTitle(tr(
"Find"));
setFixedHeight(sizeHeight().height());}
void Dialog::findClicked(){
Qstring
text=LineEdit->text();
Qt::CaseSensitivity
cs=
caseCheckBox->isChecked()?
Qt::CaseSensitive
:
Qt::CaseInsensitive;
if(
backwardCheckBox->isChecked())
{
emit findPrevious(text,cs);}
else {
emit findNext(text,cs);}}
void Dialog::enableFindButton(
const QString
&text){
findButton->setEnabled(!text.isEmpty());}
Dialog::~
Dialog(){
}main.cpp
#include "dialog.h"#include <QApplication>int main(
int argc,
char *argv[]){
QApplication
a(argc,
argv);
Dialog *dialog=
new Dialog;
dialog->show();
return a.exec();}来大神帮忙看下,刚开始学Qt,望指导...