The tutorial is building an elaborate UI around a QMap. It doesn't use structured data, and it doesn't use model/view (which the dedicated addressbook example in itemviews does). It's not a good way of building an application, and the individual APIs for creating layouts, dialogs, or import/export are explained well enough in other examples. Pick-to: 6.5 Change-Id: Iffe47a0f6e04a933edb917c877ae845f50b74b4a Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
48 lines
1.1 KiB
C++
48 lines
1.1 KiB
C++
// Copyright (C) 2016 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
|
|
#include <QtWidgets>
|
|
#include "finddialog.h"
|
|
|
|
FindDialog::FindDialog(QWidget *parent)
|
|
: QDialog(parent)
|
|
{
|
|
QLabel *findLabel = new QLabel(tr("Enter the name of a contact:"));
|
|
lineEdit = new QLineEdit;
|
|
|
|
findButton = new QPushButton(tr("&Find"));
|
|
findText = "";
|
|
|
|
QHBoxLayout *layout = new QHBoxLayout;
|
|
layout->addWidget(findLabel);
|
|
layout->addWidget(lineEdit);
|
|
layout->addWidget(findButton);
|
|
|
|
setLayout(layout);
|
|
setWindowTitle(tr("Find a Contact"));
|
|
connect(findButton, &QPushButton::clicked,
|
|
this, &FindDialog::findClicked);
|
|
connect(findButton, &QPushButton::clicked,
|
|
this, &FindDialog::accept);
|
|
}
|
|
|
|
void FindDialog::findClicked()
|
|
{
|
|
QString text = lineEdit->text();
|
|
|
|
if (text.isEmpty()) {
|
|
QMessageBox::information(this, tr("Empty Field"),
|
|
tr("Please enter a name."));
|
|
return;
|
|
} else {
|
|
findText = text;
|
|
lineEdit->clear();
|
|
hide();
|
|
}
|
|
}
|
|
|
|
QString FindDialog::getFindText()
|
|
{
|
|
return findText;
|
|
}
|