configdialog.cpp

来自「Linux窗口程序设计__Qt4精彩实例分析上面的源代码第二部分.以循序渐进的方」· C++ 代码 · 共 73 行

CPP
73
字号
#include <QtGui>

#include "configdialog.h"
#include "baseinfo.h"
#include "detail.h"
#include "contact.h"


ConfigDialog::ConfigDialog()
{
    contentsWidget = new QListWidget;
    contentsWidget->addItem(tr("base info"));
    contentsWidget->addItem(tr("contact"));
    contentsWidget->addItem(tr("detail"));
    contentsWidget->setMaximumWidth(128);
    connect(contentsWidget,
            SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)),
            this, SLOT(changePage(QListWidgetItem *, QListWidgetItem*)));

    pagesWidget = new QStackedWidget;
    pagesWidget->addWidget(new BaseInfo);
    pagesWidget->addWidget(new Contact);
    pagesWidget->addWidget(new Detail);
    
    connect(pagesWidget, SIGNAL(currentChanged(int)),
                this, SLOT(fadeInWidget(int)));

    QPushButton *closeButton = new QPushButton(tr("Close"));

 //   createIcons();
    contentsWidget->setCurrentRow(0);

    connect(closeButton, SIGNAL(clicked()), this, SLOT(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("Fade in fade out example"));
    
    faderWidget = new FaderWidget(this);
    faderWidget->start();
}

void ConfigDialog::changePage(QListWidgetItem *current, QListWidgetItem *previous)
{
    if (!current)
        current = previous;

    pagesWidget->setCurrentIndex(contentsWidget->row(current));
}

void ConfigDialog::fadeInWidget(int index)
    {
        if (faderWidget)
            faderWidget->close();
        faderWidget = new FaderWidget(
                                  pagesWidget->widget(index));
        faderWidget->start();
    }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?