tabwidget.cpp
来自「This a source insight software in Linux.」· C++ 代码 · 共 97 行
CPP
97 行
/*************************************************************************** * * Copyright (C) 2005 Elad Lahav (elad_lahav@users.sourceforge.net) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ***************************************************************************/#include <qtooltip.h>#include <klocale.h>#include "tabwidget.h"#include "kscopepixmaps.h"/** * Class constructor. * @param pParent A pointer to the parent widget * @param szName Optional widget name */TabWidget::TabWidget(QWidget* pParent, const char* szName) : KTabWidget(pParent, szName), m_pMenu(NULL){ // Create a button at the top-right corner of the tab widget m_pButton = new QToolButton(this); m_pButton->setIconSet(Pixmaps().getPixmap(KScopePixmaps::TabList)); QToolTip::add(m_pButton, i18n("Shows a popup-menu with list of all open" " tabs")); m_pButton->adjustSize(); setCornerWidget(m_pButton, TopRight); // Show the popup-menu when the button is clicked connect(m_pButton, SIGNAL(clicked()), this, SLOT(slotShowTabList()));}/** * Class destructor. */TabWidget::~TabWidget(){}/** * Creates and displays a popup-menu containing all tab labels. * This slot is connected to the clicked() signal emitted by the list button. */void TabWidget::slotShowTabList(){ int i, nId; // Delete the previous menu delete m_pMenu; m_mapMenuId.clear(); // Create and populate the menu m_pMenu = new QPopupMenu(this); for (i = 0; i < count(); i++) { nId = m_pMenu->insertItem(label(i)); m_mapMenuId[nId] = i; } // Set the current tab based on the menu selection connect(m_pMenu, SIGNAL(activated(int)), this, SLOT(slotShowTab(int))); // Show the menu m_pMenu->popup(mapToGlobal(m_pButton->pos()));}/** * Sets the current tab based on the user's menu selection. * This slot is connected to the activated() signal of the popup-menu. */void TabWidget::slotShowTab(int nMenuId){ setCurrentPage(m_mapMenuId[nMenuId]);}#include "tabwidget.moc"
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?