Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qtabwidget.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QTABWIDGET_H
6#define QTABWIDGET_H
7
8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtWidgets/qwidget.h>
10#include <QtGui/qicon.h>
11
13
14QT_BEGIN_NAMESPACE
15
16class QTabBar;
18class QStyleOptionTabWidgetFrame;
19
20class Q_WIDGETS_EXPORT QTabWidget : public QWidget
21{
22 Q_OBJECT
23 Q_PROPERTY(TabPosition tabPosition READ tabPosition WRITE setTabPosition)
24 Q_PROPERTY(TabShape tabShape READ tabShape WRITE setTabShape)
25 Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentChanged)
26 Q_PROPERTY(int count READ count)
27 Q_PROPERTY(QSize iconSize READ iconSize WRITE setIconSize)
28 Q_PROPERTY(Qt::TextElideMode elideMode READ elideMode WRITE setElideMode)
29 Q_PROPERTY(bool usesScrollButtons READ usesScrollButtons WRITE setUsesScrollButtons)
30 Q_PROPERTY(bool documentMode READ documentMode WRITE setDocumentMode)
31 Q_PROPERTY(bool tabsClosable READ tabsClosable WRITE setTabsClosable)
32 Q_PROPERTY(bool movable READ isMovable WRITE setMovable)
33 Q_PROPERTY(bool tabBarAutoHide READ tabBarAutoHide WRITE setTabBarAutoHide)
34
35public:
36 explicit QTabWidget(QWidget *parent = nullptr);
37 ~QTabWidget();
38
39 int addTab(QWidget *widget, const QString &);
40 int addTab(QWidget *widget, const QIcon& icon, const QString &label);
41
42 int insertTab(int index, QWidget *widget, const QString &);
43 int insertTab(int index, QWidget *widget, const QIcon& icon, const QString &label);
44
45 void removeTab(int index);
46
47 bool isTabEnabled(int index) const;
48 void setTabEnabled(int index, bool enabled);
49
50 bool isTabVisible(int index) const;
51 void setTabVisible(int index, bool visible);
52
53 QString tabText(int index) const;
54 void setTabText(int index, const QString &text);
55
56 QIcon tabIcon(int index) const;
57 void setTabIcon(int index, const QIcon & icon);
58
59#if QT_CONFIG(tooltip)
60 void setTabToolTip(int index, const QString & tip);
61 QString tabToolTip(int index) const;
62#endif
63
64#if QT_CONFIG(whatsthis)
65 void setTabWhatsThis(int index, const QString &text);
66 QString tabWhatsThis(int index) const;
67#endif
68
69 int currentIndex() const;
70 QWidget *currentWidget() const;
71 QWidget *widget(int index) const;
72 int indexOf(const QWidget *widget) const;
73 int count() const;
74
75 enum TabPosition { North, South, West, East };
76 Q_ENUM(TabPosition)
77 TabPosition tabPosition() const;
78 void setTabPosition(TabPosition position);
79
80 bool tabsClosable() const;
81 void setTabsClosable(bool closeable);
82
83 bool isMovable() const;
84 void setMovable(bool movable);
85
86 enum TabShape { Rounded, Triangular };
87 Q_ENUM(TabShape)
88 TabShape tabShape() const;
89 void setTabShape(TabShape s);
90
91 QSize sizeHint() const override;
92 QSize minimumSizeHint() const override;
93 int heightForWidth(int width) const override;
94 bool hasHeightForWidth() const override;
95
96 void setCornerWidget(QWidget * w, Qt::Corner corner = Qt::TopRightCorner);
97 QWidget * cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const;
98
99 Qt::TextElideMode elideMode() const;
100 void setElideMode(Qt::TextElideMode mode);
101
102 QSize iconSize() const;
103 void setIconSize(const QSize &size);
104
105 bool usesScrollButtons() const;
106 void setUsesScrollButtons(bool useButtons);
107
108 bool documentMode() const;
109 void setDocumentMode(bool set);
110
111 bool tabBarAutoHide() const;
112 void setTabBarAutoHide(bool enabled);
113
114 void clear();
115
116 QTabBar* tabBar() const;
117
118public Q_SLOTS:
119 void setCurrentIndex(int index);
120 void setCurrentWidget(QWidget *widget);
121
122Q_SIGNALS:
123 void currentChanged(int index);
124 void tabCloseRequested(int index);
125 void tabBarClicked(int index);
126 void tabBarDoubleClicked(int index);
127
128protected:
129 virtual void tabInserted(int index);
130 virtual void tabRemoved(int index);
131
132 void showEvent(QShowEvent *) override;
133 void resizeEvent(QResizeEvent *) override;
134 void keyPressEvent(QKeyEvent *) override;
135 void paintEvent(QPaintEvent *) override;
136 void setTabBar(QTabBar *);
137 void changeEvent(QEvent *) override;
138 bool event(QEvent *) override;
139 virtual void initStyleOption(QStyleOptionTabWidgetFrame *option) const;
140
141
142private:
143 Q_DECLARE_PRIVATE(QTabWidget)
144 Q_DISABLE_COPY(QTabWidget)
145 void setUpLayout(bool = false);
146};
147
148QT_END_NAMESPACE
149
150#endif // QTABWIDGET_H
QStackedWidget * stack
QWidget * rightCornerWidget
void tabMoved(int from, int to)
bool isAutoHidden() const
void updateTabBarPosition()
QWidget * leftCornerWidget
void initBasicStyleOption(QStyleOptionTabWidgetFrame *option) const
The QTabWidget class provides a stack of tabbed widgets.
Definition qtabwidget.h:21
QTabBar::Shape _q_tb_tabBarShapeFrom(QTabWidget::TabShape shape, QTabWidget::TabPosition position)
static QSize basicSize(bool horizontal, const QSize &lc, const QSize &rc, const QSize &s, const QSize &t)
QT_REQUIRE_CONFIG(tabwidget)