当前位置:主页   - 电脑 - 程序设计 - C/C++
Qt学习之路(8): 创建一个对话框(下)
来源:网络   作者:FinderCheng   更新时间:2011-07-04
收藏此页】    【字号    】    【打印】    【关闭

  接着前一篇,下面是源代码部分:

#include <QtGui>
#include "finddialog.h"

FindDialog::FindDialog(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 &backford"));

        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(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(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(sizeHint().height());
}

FindDialog::~FindDialog()
{

}

void FindDialog::findClicked()
{
        QString text = lineEdit->text();
        Qt::CaseSensitivity cs = caseCheckBox->isChecked() ? Qt::CaseInsensitive : Qt::CaseSensitive;
        if(backwardCheckBox->isChecked()) {
                emit findPrevious(text, cs);
        } else {
                emit findNext(text, cs);
        }
}

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

编缉推荐阅读以下文章

  • Qt学习之路(10): Meta-Object系统
  • Qt学习之路(9):深入了解信号槽
  • Qt学习之路(7): 创建一个对话框(上)
  • Qt学习之路(6): API文档的使用
  • Qt学习之路(5):组件布局
  • Qt学习之路(4):初探信号槽
  • Qt学习之路(3):Hello, world!(续)
  • Qt学习之路(2):Hello, world!
  • Qt学习之路(1):前言
其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明