一、基本概念
在 Qt 的界面開發中,我們經常需要隱藏或顯示一些窗口部件。如果我們使用多個 QWidget,切換時需要通過 show() 和 hide() 來顯示和隱藏,這樣就會比較麻煩。
qStackedWidget 是 Qt 提供的一個窗口部件,它可以用來管理多個窗口部件,並可以輕鬆地進行切換。qStackedWidget 隱藏了不在當前使用的子部件,只顯示激活的子部件。qStackedWidget 的最大優點是可以方便地管理所有的子部件,同時可以通過 setIndex() 方法來進行子部件之間的切換。
二、使用場景
qStackedWidget 常用於需要多個窗口互相切換的場景,例如一個設置窗口中,有多個設置項,可以使用 qStackedWidget 將所有設置項進行管理。
另外,當使用表格中的某一行時,可能需要顯示更多詳細信息的信息時,可以在 qStackedWidget 里放置更多信息的窗口,並在表格中設置槽函數,點擊時進行切換。
三、如何使用qStackedWidget
1. 創建 qStackedWidget
QStackedWidget *stackedWidget = new QStackedWidget(this);
2. 添加頁面
使用 addWidget() 函數添加頁面,函數返回的是該頁面的索引。
QWidget *page1 = new QWidget();
QWidget *page2 = new QWidget();
int index1 = stackedWidget->addWidget(page1);
int index2 = stackedWidget->addWidget(page2);
3. 切換頁面
可以使用 setCurrentIndex() 函數或者 setCurrentWidget() 函數來進行切換。
stackedWidget->setCurrentIndex(1); // 切換到第二個頁面
// 或者
stackedWidget->setCurrentWidget(page2); // 切換到第二個頁面
4. 獲取當前頁面
可以使用 currentIndex() 函數或者 currentWidget() 函數來獲取當前頁面的索引或者指針。
int currentIndex = stackedWidget->currentIndex();
// 或者
QWidget *currentPage = stackedWidget->currentWidget();
四、其它操作
1. 設置頁面間的切換動畫
可以使用 setWidget() 函數來設置操作界面:
stackedWidget->setWidget(index, newWidget);
2. 獲取頁面數量
int count = stackedWidget->count();
3. 圖標數量
qStackedWidget 也支持添加圖標,可以使用 setIconSize() 函數來設置圖標大小。可以使用 setTabIcon() 函數來為指定索引的頁面設置圖標。
stackedWidget->setIconSize(QSize(30, 30));
stackedWidget->setTabIcon(0,QIcon(":/img/image1.png"));
stackedWidget->setTabIcon(1,QIcon(":/img/image2.png"));
五、總結
本文介紹了 qStackedWidget 的基本概念及使用,通過使用 qStackedWidget,可以方便地實現多個窗口部件間的切換,提高了開發效率。
原創文章,作者:NCYTC,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/351803.html