lbajardsilogic@7: #include lbajardsilogic@7: lbajardsilogic@7: #include "widgetgallery.h" lbajardsilogic@7: lbajardsilogic@7: WidgetGallery::WidgetGallery(QWidget *parent) lbajardsilogic@7: : QDialog(parent) lbajardsilogic@7: { lbajardsilogic@7: originalPalette = QApplication::palette(); lbajardsilogic@7: lbajardsilogic@7: styleComboBox = new QComboBox; lbajardsilogic@7: styleComboBox->addItems(QStyleFactory::keys()); lbajardsilogic@7: lbajardsilogic@7: styleLabel = new QLabel(tr("&Style:")); lbajardsilogic@7: styleLabel->setBuddy(styleComboBox); lbajardsilogic@7: lbajardsilogic@7: useStylePaletteCheckBox = new QCheckBox(tr("&Use style's standard palette")); lbajardsilogic@7: useStylePaletteCheckBox->setChecked(true); lbajardsilogic@7: lbajardsilogic@7: disableWidgetsCheckBox = new QCheckBox(tr("&Disable widgets")); lbajardsilogic@7: lbajardsilogic@7: createTopLeftGroupBox(); lbajardsilogic@7: createTopRightGroupBox(); lbajardsilogic@7: createBottomLeftTabWidget(); lbajardsilogic@7: createBottomRightGroupBox(); lbajardsilogic@7: createProgressBar(); lbajardsilogic@7: lbajardsilogic@7: connect(styleComboBox, SIGNAL(activated(const QString &)), lbajardsilogic@7: this, SLOT(changeStyle(const QString &))); lbajardsilogic@7: connect(useStylePaletteCheckBox, SIGNAL(toggled(bool)), lbajardsilogic@7: this, SLOT(changePalette())); lbajardsilogic@7: connect(disableWidgetsCheckBox, SIGNAL(toggled(bool)), lbajardsilogic@7: topLeftGroupBox, SLOT(setDisabled(bool))); lbajardsilogic@7: connect(disableWidgetsCheckBox, SIGNAL(toggled(bool)), lbajardsilogic@7: topRightGroupBox, SLOT(setDisabled(bool))); lbajardsilogic@7: connect(disableWidgetsCheckBox, SIGNAL(toggled(bool)), lbajardsilogic@7: bottomLeftTabWidget, SLOT(setDisabled(bool))); lbajardsilogic@7: connect(disableWidgetsCheckBox, SIGNAL(toggled(bool)), lbajardsilogic@7: bottomRightGroupBox, SLOT(setDisabled(bool))); lbajardsilogic@7: lbajardsilogic@7: QHBoxLayout *topLayout = new QHBoxLayout; lbajardsilogic@7: topLayout->addWidget(styleLabel); lbajardsilogic@7: topLayout->addWidget(styleComboBox); lbajardsilogic@7: topLayout->addStretch(1); lbajardsilogic@7: topLayout->addWidget(useStylePaletteCheckBox); lbajardsilogic@7: topLayout->addWidget(disableWidgetsCheckBox); lbajardsilogic@7: lbajardsilogic@7: QGridLayout *mainLayout = new QGridLayout; lbajardsilogic@7: mainLayout->addLayout(topLayout, 0, 0, 1, 2); lbajardsilogic@7: mainLayout->addWidget(topLeftGroupBox, 1, 0); lbajardsilogic@7: mainLayout->addWidget(topRightGroupBox, 1, 1); lbajardsilogic@7: mainLayout->addWidget(bottomLeftTabWidget, 2, 0); lbajardsilogic@7: mainLayout->addWidget(bottomRightGroupBox, 2, 1); lbajardsilogic@7: mainLayout->addWidget(progressBar, 3, 0, 1, 2); lbajardsilogic@7: mainLayout->setRowStretch(1, 1); lbajardsilogic@7: mainLayout->setRowStretch(2, 1); lbajardsilogic@7: mainLayout->setColumnStretch(0, 1); lbajardsilogic@7: mainLayout->setColumnStretch(1, 1); lbajardsilogic@7: setLayout(mainLayout); lbajardsilogic@7: lbajardsilogic@7: setWindowTitle(tr("Styles")); lbajardsilogic@7: changeStyle("Plastic"); lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: void WidgetGallery::changeStyle(const QString &styleName) lbajardsilogic@7: { lbajardsilogic@7: lbajardsilogic@7: QApplication::setStyle(QStyleFactory::create(styleName)); lbajardsilogic@7: changePalette(); lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: void WidgetGallery::changePalette() lbajardsilogic@7: { lbajardsilogic@7: if (useStylePaletteCheckBox->isChecked()) lbajardsilogic@7: QApplication::setPalette(QApplication::style()->standardPalette()); lbajardsilogic@7: else lbajardsilogic@7: QApplication::setPalette(originalPalette); lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: void WidgetGallery::advanceProgressBar() lbajardsilogic@7: { lbajardsilogic@7: int curVal = progressBar->value(); lbajardsilogic@7: int maxVal = progressBar->maximum(); lbajardsilogic@7: progressBar->setValue(curVal + (maxVal - curVal) / 100); lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: void WidgetGallery::createTopLeftGroupBox() lbajardsilogic@7: { lbajardsilogic@7: topLeftGroupBox = new QGroupBox(tr("Group 1")); lbajardsilogic@7: lbajardsilogic@7: radioButton1 = new QRadioButton(tr("Radio button 1")); lbajardsilogic@7: radioButton2 = new QRadioButton(tr("Radio button 2")); lbajardsilogic@7: radioButton3 = new QRadioButton(tr("Radio button 3")); lbajardsilogic@7: radioButton1->setChecked(true); lbajardsilogic@7: lbajardsilogic@7: checkBox = new QCheckBox(tr("Tri-state check box")); lbajardsilogic@7: checkBox->setTristate(true); lbajardsilogic@7: checkBox->setCheckState(Qt::PartiallyChecked); lbajardsilogic@7: lbajardsilogic@7: QVBoxLayout *layout = new QVBoxLayout; lbajardsilogic@7: layout->addWidget(radioButton1); lbajardsilogic@7: layout->addWidget(radioButton2); lbajardsilogic@7: layout->addWidget(radioButton3); lbajardsilogic@7: layout->addWidget(checkBox); lbajardsilogic@7: layout->addStretch(1); lbajardsilogic@7: topLeftGroupBox->setLayout(layout); lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: void WidgetGallery::createTopRightGroupBox() lbajardsilogic@7: { lbajardsilogic@7: topRightGroupBox = new QGroupBox(tr("Group 2")); lbajardsilogic@7: lbajardsilogic@7: defaultPushButton = new QPushButton(tr("Default Push Button")); lbajardsilogic@7: defaultPushButton->setDefault(true); lbajardsilogic@7: lbajardsilogic@7: togglePushButton = new QPushButton(tr("Toggle Push Button")); lbajardsilogic@7: togglePushButton->setCheckable(true); lbajardsilogic@7: togglePushButton->setChecked(true); lbajardsilogic@7: lbajardsilogic@7: flatPushButton = new QPushButton(tr("Flat Push Button")); lbajardsilogic@7: flatPushButton->setFlat(true); lbajardsilogic@7: lbajardsilogic@7: QVBoxLayout *layout = new QVBoxLayout; lbajardsilogic@7: layout->addWidget(defaultPushButton); lbajardsilogic@7: layout->addWidget(togglePushButton); lbajardsilogic@7: layout->addWidget(flatPushButton); lbajardsilogic@7: layout->addStretch(1); lbajardsilogic@7: topRightGroupBox->setLayout(layout); lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: void WidgetGallery::createBottomLeftTabWidget() lbajardsilogic@7: { lbajardsilogic@7: bottomLeftTabWidget = new QTabWidget; lbajardsilogic@7: bottomLeftTabWidget->setSizePolicy(QSizePolicy::Preferred, lbajardsilogic@7: QSizePolicy::Ignored); lbajardsilogic@7: lbajardsilogic@7: QWidget *tab1 = new QWidget; lbajardsilogic@7: tableWidget = new QTableWidget(10, 10); lbajardsilogic@7: lbajardsilogic@7: QHBoxLayout *tab1hbox = new QHBoxLayout; lbajardsilogic@7: tab1hbox->setMargin(5); lbajardsilogic@7: tab1hbox->addWidget(tableWidget); lbajardsilogic@7: tab1->setLayout(tab1hbox); lbajardsilogic@7: lbajardsilogic@7: QWidget *tab2 = new QWidget; lbajardsilogic@7: textEdit = new QTextEdit; lbajardsilogic@7: lbajardsilogic@7: textEdit->setPlainText(tr("Twinkle, twinkle, little star,\n" lbajardsilogic@7: "How I wonder what you are.\n" lbajardsilogic@7: "Up above the world so high,\n" lbajardsilogic@7: "Like a diamond in the sky.\n" lbajardsilogic@7: "Twinkle, twinkle, little star,\n" lbajardsilogic@7: "How I wonder what you are!\n")); lbajardsilogic@7: lbajardsilogic@7: QHBoxLayout *tab2hbox = new QHBoxLayout; lbajardsilogic@7: tab2hbox->setMargin(5); lbajardsilogic@7: tab2hbox->addWidget(textEdit); lbajardsilogic@7: tab2->setLayout(tab2hbox); lbajardsilogic@7: lbajardsilogic@7: bottomLeftTabWidget->addTab(tab1, tr("&Table")); lbajardsilogic@7: bottomLeftTabWidget->addTab(tab2, tr("Text &Edit")); lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: void WidgetGallery::createBottomRightGroupBox() lbajardsilogic@7: { lbajardsilogic@7: bottomRightGroupBox = new QGroupBox(tr("Group 3")); lbajardsilogic@7: bottomRightGroupBox->setCheckable(true); lbajardsilogic@7: bottomRightGroupBox->setChecked(true); lbajardsilogic@7: lbajardsilogic@7: lineEdit = new QLineEdit("s3cRe7"); lbajardsilogic@7: lineEdit->setEchoMode(QLineEdit::Password); lbajardsilogic@7: lbajardsilogic@7: spinBox = new QSpinBox(bottomRightGroupBox); lbajardsilogic@7: spinBox->setValue(50); lbajardsilogic@7: lbajardsilogic@7: dateTimeEdit = new QDateTimeEdit(bottomRightGroupBox); lbajardsilogic@7: dateTimeEdit->setDateTime(QDateTime::currentDateTime()); lbajardsilogic@7: lbajardsilogic@7: slider = new QSlider(Qt::Horizontal, bottomRightGroupBox); lbajardsilogic@7: slider->setValue(40); lbajardsilogic@7: lbajardsilogic@7: scrollBar = new QScrollBar(Qt::Horizontal, bottomRightGroupBox); lbajardsilogic@7: scrollBar->setValue(60); lbajardsilogic@7: lbajardsilogic@7: dial = new QDial(bottomRightGroupBox); lbajardsilogic@7: dial->setValue(30); lbajardsilogic@7: dial->setNotchesVisible(true); lbajardsilogic@7: lbajardsilogic@7: QGridLayout *layout = new QGridLayout; lbajardsilogic@7: layout->addWidget(lineEdit, 0, 0, 1, 2); lbajardsilogic@7: layout->addWidget(spinBox, 1, 0, 1, 2); lbajardsilogic@7: layout->addWidget(dateTimeEdit, 2, 0, 1, 2); lbajardsilogic@7: layout->addWidget(slider, 3, 0); lbajardsilogic@7: layout->addWidget(scrollBar, 4, 0); lbajardsilogic@7: layout->addWidget(dial, 3, 1, 2, 1); lbajardsilogic@7: layout->setRowStretch(5, 1); lbajardsilogic@7: bottomRightGroupBox->setLayout(layout); lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: void WidgetGallery::createProgressBar() lbajardsilogic@7: { lbajardsilogic@7: progressBar = new QProgressBar; lbajardsilogic@7: progressBar->setRange(0, 10000); lbajardsilogic@7: progressBar->setValue(0); lbajardsilogic@7: lbajardsilogic@7: QTimer *timer = new QTimer(this); lbajardsilogic@7: connect(timer, SIGNAL(timeout()), this, SLOT(advanceProgressBar())); lbajardsilogic@7: timer->start(1000); lbajardsilogic@7: }