Qt:Документация 4.3.2/sql-drilldown-informationwindow-cpp
Материал из Wiki.crossplatform.ru
![]() | Внимание: Актуальная версия перевода документации находится здесь |
__NOTOC__
Главная · Все классы · Основные классы · Классы по группам · Модули · Функции |
[править] informationwindow.cpp Example File
sql/drilldown/informationwindow.cpp
/**************************************************************************** ** ** Copyright (C) 2006-2007 Trolltech ASA. All rights reserved. ** ** This file is part of the example classes of the Qt Toolkit. ** ** This file may be used under the terms of the GNU General Public ** License version 2.0 as published by the Free Software Foundation ** and appearing in the file LICENSE.GPL included in the packaging of ** this file. Please review the following information to ensure GNU ** General Public Licensing requirements will be met: ** http://trolltech.com/products/qt/licenses/licensing/opensource/ ** ** If you are unsure which license is appropriate for your use, please ** review the following information: ** http://trolltech.com/products/qt/licenses/licensing/licensingoverview ** or contact the sales department at sales@trolltech.com. ** ** In addition, as a special exception, Trolltech gives you certain ** additional rights. These rights are described in the Trolltech GPL ** Exception version 1.0, which can be found at ** http://www.trolltech.com/products/qt/gplexception/ and in the file ** GPL_EXCEPTION.txt in this package. ** ** In addition, as a special exception, Trolltech, as the sole copyright ** holder for Qt Designer, grants users of the Qt/Eclipse Integration ** plug-in the right for the Qt/Eclipse Integration to link to ** functionality provided by Qt Designer and its related libraries. ** ** Trolltech reserves all rights not expressly granted herein. ** ** Trolltech ASA (c) 2007 ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include "informationwindow.h" InformationWindow::InformationWindow(int id, QSqlRelationalTableModel *offices, QWidget *parent) : QDialog(parent) { QLabel *locationLabel = new QLabel(tr("Location: ")); QLabel *countryLabel = new QLabel(tr("Country: ")); QLabel *descriptionLabel = new QLabel(tr("Description: ")); QLabel *imageFileLabel = new QLabel(tr("Image file: ")); createButtons(); locationText = new QLabel; countryText = new QLabel; descriptionEditor = new QTextEdit; imageFileEditor = new QComboBox; imageFileEditor->setModel(offices->relationModel(1)); imageFileEditor->setModelColumn(offices->relationModel(1)->fieldIndex("file")); mapper = new QDataWidgetMapper(this); mapper->setModel(offices); mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit); mapper->setItemDelegate(new QSqlRelationalDelegate(mapper)); mapper->addMapping(imageFileEditor, 1); mapper->addMapping(locationText, 2); mapper->addMapping(countryText, 3); mapper->addMapping(descriptionEditor, 4); mapper->setCurrentIndex(id); connect(descriptionEditor, SIGNAL(textChanged()), this, SLOT(enableButtons())); connect(imageFileEditor, SIGNAL(currentIndexChanged(int)), this, SLOT(enableButtons())); QGridLayout *layout = new QGridLayout; layout->addWidget(locationLabel, 0, 0, Qt::AlignLeft | Qt::AlignTop); layout->addWidget(countryLabel, 1, 0, Qt::AlignLeft | Qt::AlignTop); layout->addWidget(imageFileLabel, 2, 0, Qt::AlignLeft | Qt::AlignTop); layout->addWidget(descriptionLabel, 3, 0, Qt::AlignLeft | Qt::AlignTop); layout->addWidget(locationText, 0, 1); layout->addWidget(countryText, 1, 1); layout->addWidget(imageFileEditor, 2, 1); layout->addWidget(descriptionEditor, 3, 1); layout->addWidget(buttonBox, 4, 0, 1, 2); setLayout(layout); locationId = id; displayedImage = imageFileEditor->currentText(); setWindowFlags(Qt::Window); enableButtons(false); setWindowTitle(tr("Trolltech Office: %1").arg(locationText->text())); resize(320, sizeHint().height()); } int InformationWindow::id() { return locationId; } void InformationWindow::revert() { mapper->revert(); enableButtons(false); } void InformationWindow::submit() { QString newImage(imageFileEditor->currentText()); if (displayedImage != newImage) { displayedImage = newImage; emit imageChanged(locationId, newImage); } mapper->submit(); mapper->setCurrentIndex(locationId); enableButtons(false); } void InformationWindow::createButtons() { closeButton = new QPushButton(tr("&Close")); revertButton = new QPushButton(tr("&Revert")); submitButton = new QPushButton(tr("&Submit")); closeButton->setDefault(true); connect(closeButton, SIGNAL(clicked()), this, SLOT(close())); connect(revertButton, SIGNAL(clicked()), this, SLOT(revert())); connect(submitButton, SIGNAL(clicked()), this, SLOT(submit())); buttonBox = new QDialogButtonBox; buttonBox->addButton(submitButton, QDialogButtonBox::ResetRole); buttonBox->addButton(revertButton, QDialogButtonBox::ResetRole); buttonBox->addButton(closeButton, QDialogButtonBox::RejectRole); } void InformationWindow::enableButtons(bool enable) { revertButton->setEnabled(enable); submitButton->setEnabled(enable); }
Copyright © 2007 Trolltech | Trademarks | Qt 4.3.2
|