qtabwidget.h
上传用户:detong
上传日期:2022-06-22
资源大小:20675k
文件大小:8k
源码类别:

系统编程

开发平台:

Unix_Linux

  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
  4. ** Contact: Qt Software Information (qt-info@nokia.com)
  5. **
  6. ** This file is part of the QtGui module of the Qt Toolkit.
  7. **
  8. ** Commercial Usage
  9. ** Licensees holding valid Qt Commercial licenses may use this file in
  10. ** accordance with the Qt Commercial License Agreement provided with the
  11. ** Software or, alternatively, in accordance with the terms contained in
  12. ** a written agreement between you and Nokia.
  13. **
  14. **
  15. ** GNU General Public License Usage
  16. ** Alternatively, this file may be used under the terms of the GNU
  17. ** General Public License versions 2.0 or 3.0 as published by the Free
  18. ** Software Foundation and appearing in the file LICENSE.GPL included in
  19. ** the packaging of this file.  Please review the following information
  20. ** to ensure GNU General Public Licensing requirements will be met:
  21. ** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
  22. ** http://www.gnu.org/copyleft/gpl.html.  In addition, as a special
  23. ** exception, Nokia gives you certain additional rights. These rights
  24. ** are described in the Nokia Qt GPL Exception version 1.3, included in
  25. ** the file GPL_EXCEPTION.txt in this package.
  26. **
  27. ** Qt for Windows(R) Licensees
  28. ** As a special exception, Nokia, as the sole copyright holder for Qt
  29. ** Designer, grants users of the Qt/Eclipse Integration plug-in the
  30. ** right for the Qt/Eclipse Integration to link to functionality
  31. ** provided by Qt Designer and its related libraries.
  32. **
  33. ** If you are unsure which license is appropriate for your use, please
  34. ** contact the sales department at qt-sales@nokia.com.
  35. **
  36. ****************************************************************************/
  37. #ifndef QTABWIDGET_H
  38. #define QTABWIDGET_H
  39. #include <QtGui/qwidget.h>
  40. #include <QtGui/qicon.h>
  41. QT_BEGIN_HEADER
  42. QT_BEGIN_NAMESPACE
  43. QT_MODULE(Gui)
  44. #ifndef QT_NO_TABWIDGET
  45. class QTabBar;
  46. class QTabWidgetPrivate;
  47. class QStyleOptionTabWidgetFrame;
  48. class Q_GUI_EXPORT QTabWidget : public QWidget
  49. {
  50.     Q_OBJECT
  51.     Q_ENUMS(TabPosition TabShape)
  52.     Q_PROPERTY(TabPosition tabPosition READ tabPosition WRITE setTabPosition)
  53.     Q_PROPERTY(TabShape tabShape READ tabShape WRITE setTabShape)
  54.     Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentChanged)
  55.     Q_PROPERTY(int count READ count)
  56.     Q_PROPERTY(QSize iconSize READ iconSize WRITE setIconSize)
  57.     Q_PROPERTY(Qt::TextElideMode elideMode READ elideMode WRITE setElideMode)
  58.     Q_PROPERTY(bool usesScrollButtons READ usesScrollButtons WRITE setUsesScrollButtons)
  59. public:
  60.     explicit QTabWidget(QWidget *parent = 0);
  61.     ~QTabWidget();
  62.     int addTab(QWidget *widget, const QString &);
  63.     int addTab(QWidget *widget, const QIcon& icon, const QString &label);
  64.     int insertTab(int index, QWidget *widget, const QString &);
  65.     int insertTab(int index, QWidget *widget, const QIcon& icon, const QString &label);
  66.     void removeTab(int index);
  67.     bool isTabEnabled(int index) const;
  68.     void setTabEnabled(int index, bool);
  69.     QString tabText(int index) const;
  70.     void setTabText(int index, const QString &);
  71.     QIcon tabIcon(int index) const;
  72.     void setTabIcon(int index, const QIcon & icon);
  73. #ifndef QT_NO_TOOLTIP
  74.     void setTabToolTip(int index, const QString & tip);
  75.     QString tabToolTip(int index) const;
  76. #endif
  77. #ifndef QT_NO_WHATSTHIS
  78.     void setTabWhatsThis(int index, const QString &text);
  79.     QString tabWhatsThis(int index) const;
  80. #endif
  81.     int currentIndex() const;
  82.     QWidget *currentWidget() const;
  83.     QWidget *widget(int index) const;
  84.     int indexOf(QWidget *widget) const;
  85.     int count() const;
  86.     enum TabPosition { North, South, West, East
  87. #if defined(QT3_SUPPORT) && !defined(Q_MOC_RUN)
  88.         , Top = North, Bottom = South
  89. #endif
  90.     };
  91.     TabPosition tabPosition() const;
  92.     void setTabPosition(TabPosition);
  93.     enum TabShape { Rounded, Triangular };
  94.     TabShape tabShape() const;
  95.     void setTabShape(TabShape s);
  96.     QSize sizeHint() const;
  97.     QSize minimumSizeHint() const;
  98.     void setCornerWidget(QWidget * w, Qt::Corner corner = Qt::TopRightCorner);
  99.     QWidget * cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const;
  100.     Qt::TextElideMode elideMode() const;
  101.     void setElideMode(Qt::TextElideMode);
  102.     QSize iconSize() const;
  103.     void setIconSize(const QSize &size);
  104.     bool usesScrollButtons() const;
  105.     void setUsesScrollButtons(bool useButtons);
  106.     void clear();
  107. public Q_SLOTS:
  108.     void setCurrentIndex(int index);
  109.     void setCurrentWidget(QWidget *widget);
  110. Q_SIGNALS:
  111.     void currentChanged(int index);
  112. protected:
  113.     virtual void tabInserted(int index);
  114.     virtual void tabRemoved(int index);
  115.     void showEvent(QShowEvent *);
  116.     void resizeEvent(QResizeEvent *);
  117.     void keyPressEvent(QKeyEvent *);
  118.     void paintEvent(QPaintEvent *);
  119.     void setTabBar(QTabBar *);
  120.     QTabBar* tabBar() const;
  121.     void changeEvent(QEvent *);
  122.     bool event(QEvent *);
  123.     void initStyleOption(QStyleOptionTabWidgetFrame *option) const;
  124. #ifdef QT3_SUPPORT
  125. public:
  126.     QT3_SUPPORT_CONSTRUCTOR QTabWidget(QWidget *parent, const char *name, Qt::WindowFlags f = 0);
  127.     inline QT3_SUPPORT void insertTab(QWidget * w, const QString &s, int index = -1) { insertTab(index, w, s); }
  128.     inline QT3_SUPPORT void insertTab(QWidget *child, const QIcon& icon,
  129.                                     const QString &label, int index = -1) { insertTab(index, child, icon, label); }
  130.     inline QT3_SUPPORT void changeTab(QWidget *w, const QString &s) {setTabText(indexOf(w), s); }
  131.     inline QT3_SUPPORT void changeTab(QWidget *w, const QIcon& icon,
  132.                                     const QString &label) { int idx = indexOf(w); setTabText(idx, label); setTabIcon(idx, icon); }
  133.     inline QT3_SUPPORT bool isTabEnabled( QWidget *w) const {return isTabEnabled(indexOf(w)); }
  134.     inline QT3_SUPPORT void setTabEnabled(QWidget *w, bool b) { setTabEnabled(indexOf(w), b); }
  135.     inline QT3_SUPPORT QString tabLabel(QWidget *w) const  {return tabText(indexOf(w)); }
  136.     inline QT3_SUPPORT void setTabLabel(QWidget *w, const QString &l) { setTabText(indexOf(w), l); }
  137.     inline QT3_SUPPORT QIcon tabIconSet(QWidget * w) const  {return tabIcon(indexOf(w)); }
  138.     inline QT3_SUPPORT void setTabIconSet(QWidget * w, const QIcon & icon) { setTabIcon(indexOf(w), icon); }
  139.     inline QT3_SUPPORT void removeTabToolTip(QWidget * w) {
  140. #ifndef QT_NO_TOOLTIP
  141.         setTabToolTip(indexOf(w), QString());
  142. #else
  143.         Q_UNUSED(w);
  144. #endif
  145.     }
  146.     inline QT3_SUPPORT void setTabToolTip(QWidget * w, const QString & tip) {
  147. #ifndef QT_NO_TOOLTIP
  148.         setTabToolTip(indexOf(w), tip);
  149. #else
  150.         Q_UNUSED(w);
  151.         Q_UNUSED(tip);
  152. #endif
  153.     }
  154.     inline QT3_SUPPORT QString tabToolTip(QWidget * w) const {
  155. #ifndef QT_NO_TOOLTIP
  156.         return tabToolTip(indexOf(w));
  157. #else
  158.         Q_UNUSED(w);
  159.         return QString();
  160. #endif
  161.     }
  162.     inline QT3_SUPPORT QWidget * currentPage() const { return currentWidget(); }
  163.     inline QT3_SUPPORT QWidget *page(int index) const { return widget(index); }
  164.     inline QT3_SUPPORT QString label(int index) const { return tabText(index); }
  165.     inline QT3_SUPPORT int currentPageIndex() const { return currentIndex(); }
  166.     inline QT3_SUPPORT int margin() const { return 0; }
  167.     inline QT3_SUPPORT void setMargin(int) {}
  168. public Q_SLOTS:
  169.     inline QT_MOC_COMPAT void setCurrentPage(int index) { setCurrentIndex(index); }
  170.     inline QT_MOC_COMPAT void showPage(QWidget *w) { setCurrentIndex(indexOf(w)); }
  171.     inline QT_MOC_COMPAT void removePage(QWidget *w) { removeTab(indexOf(w)); }
  172. Q_SIGNALS:
  173.     QT_MOC_COMPAT void currentChanged(QWidget *);
  174.     QT_MOC_COMPAT void selected(const QString&);
  175. #endif // QT3_SUPPORT
  176. private:
  177.     Q_DECLARE_PRIVATE(QTabWidget)
  178.     Q_DISABLE_COPY(QTabWidget)
  179.     Q_PRIVATE_SLOT(d_func(), void _q_showTab(int))
  180.     Q_PRIVATE_SLOT(d_func(), void _q_removeTab(int))
  181.     void setUpLayout(bool = false);
  182.     friend class Q3TabDialog;
  183. };
  184. #endif // QT_NO_TABWIDGET
  185. QT_END_NAMESPACE
  186. QT_END_HEADER
  187. #endif // QTABWIDGET_H