Code for Config Dialog Example
/****************************************************************************
**
** Copyright (C) 1992-2008 Nokia. All rights reserved.
**
** This file is part of Qt Jambi.
**
** * Commercial Usage
* Licensees holding valid Qt Commercial licenses may use this file in
* accordance with the Qt Commercial License Agreement provided with the
* Software or, alternatively, in accordance with the terms contained in
* a written agreement between you and Nokia.
*
*
* GNU General Public License Usage
* Alternatively, this file may be used under the terms of the GNU
* General Public License versions 2.0 or 3.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://www.fsf.org/licensing/licenses/info/GPLv2.html and
* http://www.gnu.org/copyleft/gpl.html. In addition, as a special
* exception, Nokia gives you certain additional rights. These rights
* are described in the Nokia Qt GPL Exception version 1.2, included in
* the file GPL_EXCEPTION.txt in this package.
*
* Qt for Windows(R) Licensees
* As a special exception, Nokia, 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.
*
*
* If you are unsure which license is appropriate for your use, please
* contact the sales department at qt-sales@nokia.com.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
****************************************************************************/
package com.trolltech.examples;
import com.trolltech.qt.core.QDate;
import com.trolltech.qt.core.QSize;
import com.trolltech.qt.core.Qt.AlignmentFlag;
import com.trolltech.qt.core.Qt.ItemFlag;
import com.trolltech.qt.gui.*;
@QtJambiExample(name = "Config Dialog")
public class ConfigDialog extends QDialog {
private QListWidget contentsWidget;
private QStackedWidget pagesWidget;
public static void main(String args[]) {
QApplication.initialize(args);
ConfigDialog dialog = new ConfigDialog(null);
dialog.show();
QApplication.exec();
}
public ConfigDialog(QWidget parent) {
super(parent);
contentsWidget = new QListWidget(this);
contentsWidget.setViewMode(QListView.ViewMode.IconMode);
contentsWidget.setIconSize(new QSize(96, 84));
contentsWidget.setMovement(QListView.Movement.Static);
contentsWidget.setMaximumWidth(128);
contentsWidget.setSpacing(12);
pagesWidget = new QStackedWidget(this);
pagesWidget.addWidget(new ConfigurationPage(this));
pagesWidget.addWidget(new UpdatePage(this));
pagesWidget.addWidget(new QueryPage(this));
QPushButton closeButton = new QPushButton(tr("Close"));
createIcons();
contentsWidget.setCurrentRow(0);
closeButton.clicked.connect(this, "close()");
QHBoxLayout horizontalLayout = new QHBoxLayout();
horizontalLayout.addWidget(contentsWidget);
horizontalLayout.addWidget(pagesWidget, 1);
QHBoxLayout buttonsLayout = new QHBoxLayout();
buttonsLayout.addStretch(1);
buttonsLayout.addWidget(closeButton);
QVBoxLayout mainLayout = new QVBoxLayout();
mainLayout.addLayout(horizontalLayout);
mainLayout.addStretch(1);
mainLayout.addSpacing(12);
mainLayout.addLayout(buttonsLayout);
setLayout(mainLayout);
setWindowTitle(tr("Config Dialog"));
setWindowIcon(new QIcon("classpath:com/trolltech/images/qt-logo.png"));
}
private void createIcons() {
QListWidgetItem configButton = new QListWidgetItem(contentsWidget);
configButton.setIcon(new QIcon("classpath:com/trolltech/examples/images/config.png"));
configButton.setText(tr("Configuration"));
configButton.setTextAlignment(AlignmentFlag.AlignHCenter.value());
configButton
.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled);
QListWidgetItem updateButton = new QListWidgetItem(contentsWidget);
updateButton.setIcon(new QIcon("classpath:com/trolltech/examples/images/update.png"));
updateButton.setText(tr("Update"));
updateButton.setTextAlignment(AlignmentFlag.AlignHCenter.value());
updateButton
.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled);
QListWidgetItem queryButton = new QListWidgetItem(contentsWidget);
queryButton.setIcon(new QIcon("classpath:com/trolltech/examples/images/query.png"));
queryButton.setText(tr("Query"));
queryButton.setTextAlignment(AlignmentFlag.AlignHCenter.value());
queryButton.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled);
contentsWidget.currentItemChanged.connect(this,
"changePage(QListWidgetItem , QListWidgetItem)");
}
protected void changePage(QListWidgetItem current, QListWidgetItem previous) {
pagesWidget.setCurrentIndex(contentsWidget.row(current));
}
private class ConfigurationPage extends QWidget {
public ConfigurationPage(QWidget parent) {
super(parent);
QGroupBox configGroup = new QGroupBox(tr("Server configuration"));
QLabel serverLabel = new QLabel(tr("Server:"));
QComboBox serverCombo = new QComboBox();
serverCombo.addItem(tr("Qt Software (Australia)"));
serverCombo.addItem(tr("Qt Software (Germany)"));
serverCombo.addItem(tr("Qt Software (Norway)"));
serverCombo.addItem(tr("Qt Software (People's Republic of China)"));
serverCombo.addItem(tr("Qt Software (USA)"));
QHBoxLayout serverLayout = new QHBoxLayout();
serverLayout.addWidget(serverLabel);
serverLayout.addWidget(serverCombo);
QVBoxLayout configLayout = new QVBoxLayout();
configLayout.addLayout(serverLayout);
configGroup.setLayout(configLayout);
QVBoxLayout mainLayout = new QVBoxLayout();
mainLayout.addWidget(configGroup);
mainLayout.addStretch(1);
setLayout(mainLayout);
}
}
private class UpdatePage extends QWidget {
public UpdatePage(QWidget parent) {
super(parent);
QGroupBox updateGroup = new QGroupBox(tr("Package selection"));
QCheckBox systemCheckBox = new QCheckBox(tr("Update system"));
QCheckBox appsCheckBox = new QCheckBox(tr("Update applications"));
QCheckBox docsCheckBox = new QCheckBox(tr("Update documentation"));
QGroupBox packageGroup = new QGroupBox(tr("Existing packages"));
QListWidget packageList = new QListWidget();
QListWidgetItem qtItem = new QListWidgetItem(packageList);
qtItem.setText(tr("Qt"));
QListWidgetItem qsaItem = new QListWidgetItem(packageList);
qsaItem.setText(tr("QSA"));
QListWidgetItem teamBuilderItem = new QListWidgetItem(packageList);
teamBuilderItem.setText(tr("Teambuilder"));
QPushButton startUpdateButton = new QPushButton(tr("Start update"));
QVBoxLayout updateLayout = new QVBoxLayout();
updateLayout.addWidget(systemCheckBox);
updateLayout.addWidget(appsCheckBox);
updateLayout.addWidget(docsCheckBox);
updateGroup.setLayout(updateLayout);
QVBoxLayout packageLayout = new QVBoxLayout();
packageLayout.addWidget(packageList);
packageGroup.setLayout(packageLayout);
QVBoxLayout mainLayout = new QVBoxLayout();
mainLayout.addWidget(updateGroup);
mainLayout.addWidget(packageGroup);
mainLayout.addSpacing(12);
mainLayout.addWidget(startUpdateButton);
mainLayout.addStretch(1);
setLayout(mainLayout);
}
}
private class QueryPage extends QWidget {
public QueryPage(QWidget parent) {
super(parent);
QGroupBox packagesGroup = new QGroupBox(tr("Look for packages"));
QLabel nameLabel = new QLabel(tr("Name:"));
QLineEdit nameEdit = new QLineEdit();
QLabel dateLabel = new QLabel(tr("Released after:"));
QDateTimeEdit dateEdit = new QDateTimeEdit(QDate.currentDate());
QCheckBox releasesCheckBox = new QCheckBox(tr("Releases"));
QCheckBox upgradesCheckBox = new QCheckBox(tr("Upgrades"));
QSpinBox hitsSpinBox = new QSpinBox();
hitsSpinBox.setPrefix(tr("Return up to") + " ");
hitsSpinBox.setSuffix(" " + tr("results"));
hitsSpinBox.setSpecialValueText(tr("Return only the first result"));
hitsSpinBox.setMinimum(1);
hitsSpinBox.setMaximum(100);
hitsSpinBox.setSingleStep(10);
QPushButton startQueryButton = new QPushButton(tr("Start query"));
QGridLayout packagesLayout = new QGridLayout();
packagesLayout.addWidget(nameLabel, 0, 0);
packagesLayout.addWidget(nameEdit, 0, 1);
packagesLayout.addWidget(dateLabel, 1, 0);
packagesLayout.addWidget(dateEdit, 1, 1);
packagesLayout.addWidget(releasesCheckBox, 2, 0);
packagesLayout.addWidget(upgradesCheckBox, 3, 0);
packagesLayout.addWidget(hitsSpinBox, 4, 0, 1, 2);
packagesGroup.setLayout(packagesLayout);
QVBoxLayout mainLayout = new QVBoxLayout();
mainLayout.addWidget(packagesGroup);
mainLayout.addSpacing(12);
mainLayout.addWidget(startQueryButton);
mainLayout.addStretch(1);
setLayout(mainLayout);
}
}
}
Copyright © 2008 Nokia |
Trademarks |
Qt Jambi 4.4.3_01 |