功能
QTabWidget?的一種帶標簽頁的窗口,在這種類型的窗口中可以存儲多個子窗口,每個子窗口的顯示可以通過對應的標簽進行切換。
?
相關API
// 構造函數
QTabWidget::QTabWidget(QWidget *parent = Q_NULLPTR);// 公共成員函數
/*
添加選項卡addTab()或者插入選項卡insertTab()函數相關的參數如下:
? ? - page: 添加或者插入的選項卡對應的窗口實例對象
? ? - label: 添加或者插入的選項卡的標題
? ? - icon: 添加或者插入的選項卡的圖標
? ? - index: 將新的選項卡插入到索引index的位置上
*/
int QTabWidget::addTab(QWidget *page, const QString &label);
int QTabWidget::addTab(QWidget *page, const QIcon &icon, const QString &label);
int QTabWidget::insertTab(int index, QWidget *page, const QString &label);
int QTabWidget::insertTab(int index, QWidget *page,?
? ? ? ? ? ? ? ? ? ? ? ? ? const QIcon &icon, const QString &label);
// 刪除index位置的選項卡
void QTabWidget::removeTab(int index);// 得到選項卡欄中的選項卡的數量
int count() const;
// 從窗口中移除所有頁面,但不刪除它們。調用這個函數相當于調用removeTab(),直到選項卡小部件為空為止。
void QTabWidget::clear();
// 獲取當前選項卡對應的索引
int QTabWidget::currentIndex() const;
// 獲取當前選項卡對應的窗口對象地址
QWidget?*QTabWidget::currentWidget() const;
// 返回索引位置為index的選項卡頁,如果索引超出范圍則返回0。
QWidget *QTabWidget::widget(int index) const;/*
標簽上顯示的文本樣式為枚舉類型 Qt::TextElideMode, 可選項為:
? ? - Qt::ElideLeft: 省略號應出現在課文的開頭,例如:.....是的,我很帥。
? ? - Qt::ElideRight: 省略號應出現在文本的末尾,例如:我?guī)泦?....。
? ? - Qt::ElideMiddle: 省略號應出現在文本的中間,例如:我?guī)?....很帥。
? ? - Qt::ElideNone: 省略號不應出現在文本中
*/
// 獲取標簽上顯示的文本模式
Qt::TextElideMode QTabWidget::elideMode() const;
// 如何省略標簽欄中的文本, 此屬性控制在給定的選項卡欄大小沒有足夠的空間顯示項時如何省略項。
void QTabWidget::setElideMode(Qt::TextElideMode);
? ??
// 得到選項卡上圖標的尺寸信息
QSize QTabWidget::iconSize() const
// 設置選項卡上顯示的圖標大小
void QTabWidget::setIconSize(const QSize &size)// 判斷用戶是否可以在選項卡區(qū)域內移動選項卡, 可以返回true, 否則返回false
bool QTabWidget::isMovable() const;
// 此屬性用于設置用戶是否可以在選項卡區(qū)域內移動選項卡。默認情況下,此屬性為false;
void QTabWidget::setMovable(bool movable);// 判斷選項卡是否可以自動隱藏, 如果可以自動隱藏返回true, 否則返回false
bool QTabWidget::tabBarAutoHide() const;
// 如果為true,則當選項卡欄包含少于2個選項卡時,它將自動隱藏。默認情況下,此屬性為false。
void QTabWidget::setTabBarAutoHide(bool enabled);// 判斷index對應的選項卡是否是被啟用的, 如果是被啟用的返回true, 否則返回false
bool QTabWidget::isTabEnabled(int index) const;
// 如果enable為true,則在索引位置的頁面是啟用的;否則,在位置索引處的頁面將被禁用。
void QTabWidget::setTabEnabled(int index, bool enable);// 得到index位置的標簽對應的圖標
QIcon QTabWidget::tabIcon(int index) const;
// 在位置索引處設置標簽的圖標。
void QTabWidget::setTabIcon(int index, const QIcon &icon);/*
選項卡標簽的位置通過枚舉值進行指定, 可使用的選項如下:
?? ?- QTabWidget::North: 北(上), 默認
?? ?- QTabWidget::South: 南(下)
?? ?- QTabWidget::West:?? ? 西(左)
?? ?- QTabWidget::East: ?東(右)
*/
// 得到選項卡中顯示的標簽的位置, 即: 東, 西, 南, 北
TabPosition QTabWidget::tabPosition() const;
// 設置選項卡中標簽顯示的位置, 默認情況下,此屬性設置為North。
void QTabWidget::setTabPosition(TabPosition);/*
選項卡標簽的形狀通過枚舉值進行指定, 可使用的選項如下:
?? ?- QTabWidget::Rounded: 標簽以圓形的外觀繪制。這是默認形狀
?? ?- QTabWidget::Triangular: 選項卡以三角形外觀繪制。
*/
// 獲得選項卡標簽的形狀
TabShape QTabWidget::tabShape() const;
// 設置選項卡標簽的形狀
void QTabWidget::setTabShape(TabShape s);// 得到index位置的標簽的標題
QString QTabWidget::tabText(int index) const;
// 設置選項卡index位置的標簽的標題
void QTabWidget::setTabText(int index, const QString &label);
// 獲取index對應的標簽頁上設置的提示信息
QString QTabWidget::tabToolTip(int index) const;
// 設置選項卡index位置的標簽的提示信息(鼠標需要懸停在標簽上一定時長才能顯示)
void QTabWidget::setTabToolTip(int index, const QString &tip);
// 判斷選項卡標簽也上是否有關閉按鈕, 如果有返回true, 否則返回false
bool QTabWidget::tabsClosable() const;
// 設置選項卡的標簽頁上是否顯示關閉按鈕, 該屬性默認情況下為false
void QTabWidget::setTabsClosable(bool closeable);
// 判斷選項卡欄中是否有滾動按鈕, 如果有返回true, 否則返回false
bool QTabWidget::usesScrollButtons() const;
// 設置選項卡欄有許多標簽時,它是否應該使用按鈕來滾動標簽。
// 當一個選項卡欄有太多的標簽時,選項卡欄可以選擇擴大它的大小,或者添加按鈕,讓標簽在選項卡欄中滾動。
void QTabWidget::setUsesScrollButtons(bool useButtons);// 判斷窗口是否設置了文檔模式, 如果設置了返回true, 否則返回false
bool QTabWidget::documentMode() const;
// 此屬性保存選項卡小部件是否以適合文檔頁面的模式呈現。這與macOS上的文檔模式相同。
// 不設置該屬性, QTabWidget窗口是帶邊框的, 如果設置了該屬性邊框就沒有了。
void QTabWidget::setDocumentMode(bool set);
信號?
// 每當當前頁索引改變時,就會發(fā)出這個信號。參數是新的當前頁索引位置,如果沒有新的索引位置,則為-1
[signal] void QTabWidget::currentChanged(int index);
// 當用戶單擊索引處的選項卡時,就會發(fā)出這個信號。index指所單擊的選項卡,如果光標下沒有選項卡,則為-1。
[signal] void QTabWidget::tabBarClicked(int index)
// 當用戶雙擊索引上的一個選項卡時,就會發(fā)出這個信號。
// index是單擊的選項卡的索引,如果光標下沒有選項卡,則為-1。
[signal] void QTabWidget::tabBarDoubleClicked(int index);
// 此信號在單擊選項卡上的close按鈕時發(fā)出。索引是應該被刪除的索引。 ?? ?
[signal] void QTabWidget::tabCloseRequested(int index);
槽函數?
// 設置當前窗口中顯示選項卡index位置對應的標簽頁內容
[slot] void QTabWidget::setCurrentIndex(int index);
// 設置當前窗口中顯示選項卡中子窗口widget中的內容
[slot] void QTabWidget::setCurrentWidget(QWidget *widget);文章來源:http://www.zghlxwxcb.cn/news/detail-636497.html
?
// mainwindow.cpp
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 點擊了標簽上的關閉按鈕
connect(ui->tabWidget, &QTabWidget::tabCloseRequested, this, [=](int index)
{
// 保存信息
QWidget* wg = ui->tabWidget->widget(index);
QString title = ui->tabWidget->tabText(index);
m_widgets.enqueue(wg);
m_names.enqueue(title);
// 移除tab頁
ui->tabWidget->removeTab(index);
ui->addBtn->setEnabled(true);
});
// 當標簽被點擊了之后的處理動作
connect(ui->tabWidget, &QTabWidget::tabBarClicked, this, [=](int index)
{
qDebug() << "我被點擊了一下, 我的標題是: " << ui->tabWidget->tabText(index);
});
// 切換標簽之后的處理動作
connect(ui->tabWidget, &QTabWidget::currentChanged, this, [=](int index)
{
qDebug() << "當前顯示的tab頁, 我的標題是: " << ui->tabWidget->tabText(index);
});
// 點擊添加標簽按鈕點擊之后的處理動作
connect(ui->addBtn, &QPushButton::clicked, this, [=]()
{
// 將被刪除的標簽頁添加到窗口中
// 1. 知道窗口對象, 窗口的標題
// 2. 知道添加函數
ui->tabWidget->addTab(m_widgets.dequeue(), m_names.dequeue());
if(m_widgets.empty())
{
ui->addBtn->setDisabled(true);
}
});
}
?
?文章來源地址http://www.zghlxwxcb.cn/news/detail-636497.html
到了這里,關于Qt 容器控件之Tab Widget 使用詳解的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!