Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cpp
- #include <QtGui>
- #include <QLabel>
- #include <QCheckBox>
- #include <QPushButton>
- #include "finddialog.h"
- #include <QtWidgets/QHBoxLayout>
- FindDialog::FindDialog(QWidget *parent) : QDialog(parent) {
- label = new QLabel(tr("Find &what:"));
- lineEdit = new QLineEdit;
- label->setBuddy(lineEdit);
- caseCheckBox = new QCheckBox(tr("Match &case"));
- backwardChechBox = new QCheckBox(tr("Search backward"));
- findButton = new QPushButton(tr("&Find"));
- findButton->setDefault(true);
- findButton->setEnabled(false);
- closeButton = new QPushButton(tr("Close"));
- connect(lineEdit,SIGNAL(textChanged(const QString &)),
- this,SLOT(enableFindButton(const QString &)));
- connect(lineEdit,SIGNAL(textChanged(const QString &)),this, SLOT(enableFindButton(const QString &)));
- connect(findButton, SIGNAL(clicked()),this, SLOT(findClicked()));
- connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
- QHBoxLayout* topLeftLayout = new QHBoxLayout;
- topLeftLayout->addWidget(label);
- topLeftLayout->addWidget(lineEdit);
- QVBoxLayout* leftLayout = new QVBoxLayout;
- leftLayout->addLayout(topLeftLayout);
- leftLayout->addWidget(caseCheckBox);
- leftLayout->addWidget(backwardChechBox);
- 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(sizeHint().height());
- }
- void FindDialog::findClicked() {
- QString text = lineEdit->text();
- Qt::CaseSensitivity cs = caseCheckBox->isChecked() ? Qt::CaseSensitive : Qt::CaseInsensitive;
- if(backwardChechBox->isChecked()){
- emit findPrev(text, cs);
- } else{
- emit findNext(text,cs);
- }
- }
- void FindDialog::enableFindButton(const QString &text) {
- findButton->setEnabled(!text.isEmpty());
- }
- --------
- h
- #ifndef SECOND_PROGECT_FINDDIALOG_H
- #define SECOND_PROGECT_FINDDIALOG_H
- #include <QDialog>
- #include <QLabel>
- #include <QCheckBox>
- #include <QLineEdit>
- #include <QPushButton>
- class FindDialog : public QDialog{
- Q_OBJECT
- public:
- FindDialog(QWidget *parent=0);
- signals:
- void findNext(const QString &str, Qt::CaseSensitivity cs);
- void findPrev(const QString &str, Qt::CaseSensitivity cs);
- private slots:
- void findClicked();
- void enableFindButton(const QString &text);
- private:
- QLabel* label;
- QLineEdit* lineEdit;
- QCheckBox* caseCheckBox;
- QCheckBox* backwardChechBox;
- QPushButton* findButton;
- QPushButton* closeButton;
- };
- #endif
- ----
- main
- #include <QApplication>
- #include "finddialog.h"
- int main(int argc,char* argv[]) {
- QApplication app(argc,argv);
- FindDialog* dialog = new FindDialog;
- dialog->show();
- return app.exec();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement