📄 multipagewidget.cpp
字号:
/******************************************************************************** Copyright (C) 2005-2006 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://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.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.******************************************************************************/#include <QtGui>#include "multipagewidget.h"MultiPageWidget::MultiPageWidget(QWidget *parent) : QWidget(parent){ comboBox = new QComboBox(); comboBox->setObjectName("__qt__passive_comboBox"); stackWidget = new QStackedWidget(); connect(comboBox, SIGNAL(activated(int)), this, SLOT(setCurrentIndex(int))); layout = new QVBoxLayout(); layout->addWidget(comboBox); layout->addWidget(stackWidget); setLayout(layout);}QSize MultiPageWidget::sizeHint() const{ return QSize(200, 150);}void MultiPageWidget::addPage(QWidget *page){ insertPage(count(), page);}void MultiPageWidget::removePage(int index){ QWidget *widget = stackWidget->widget(index); stackWidget->removeWidget(widget); comboBox->removeItem(index);}int MultiPageWidget::count() const{ return stackWidget->count();}int MultiPageWidget::currentIndex() const{ return stackWidget->currentIndex();}void MultiPageWidget::insertPage(int index, QWidget *page){ page->setParent(stackWidget); stackWidget->insertWidget(index, page); QString title = page->windowTitle(); if (title.isEmpty()) { title = tr("Page %1").arg(comboBox->count() + 1); page->setWindowTitle(title); } comboBox->insertItem(index, title);}void MultiPageWidget::setCurrentIndex(int index){ if (index != currentIndex()) { stackWidget->setCurrentIndex(index); comboBox->setCurrentIndex(index); emit currentIndexChanged(index); }}QWidget* MultiPageWidget::widget(int index){ return stackWidget->widget(index);}QString MultiPageWidget::pageTitle() const{ return stackWidget->currentWidget()->windowTitle();}void MultiPageWidget::setPageTitle(QString const &newTitle){ comboBox->setItemText(currentIndex(), newTitle); stackWidget->currentWidget()->setWindowTitle(newTitle); emit pageTitleChanged(newTitle);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -