一、QStackWidget簡介
QStackWidget是Qt中的一個非常實用的處理窗體元素切換的類。
它可以在同一區域內展示多個子元素,以實現在一個窗口內快速切換不同的UI元素,類似於淘寶APP中的標籤頁。
QStackWidget繼承自QWidget,是一種面向窗口的控制項容器,因而可以很方便地將多種控制項進行組合展示,更好地實現複雜UI模型。
二、QStackWidget的使用
使用QStackWidget,首先需要將QStackWidget添加到窗口中。
在mainwindow.cpp文件中,可以使用以下代碼創建QStackWidget:
QStackWidget* stack = new QStackWidget(this); stack->setGeometry(10,10,300,240);
這裡我們給stack一個四個參數的構造函數,用於確定QStackWidget的位置和大小。
接下來我們可以添加子元素並展示出來。
將窗口上以一個按鍵QPushButton為根,創建以下界面:
QPushButton *btn1 = new QPushButton(this); btn1->setText("Button 1"); QPushButton *btn2 = new QPushButton(this); btn2->setText("Button 2"); QPushButton *btn3 = new QPushButton(this); btn3->setText("Button 3"); stack->addWidget(btn1); stack->addWidget(btn2); stack->addWidget(btn3); stack->setCurrentIndex(0);
這裡我們分別創建了三個QPushButton類型的控制項,並將其添加到QStackWidget中。
其中stack->setCurrentIndex(0)表示默認展示第一個控制項。
當然,我們也可以在設計完成後在QDesigner中添加QStackWidget以及其所需要的子元素並設置屬性。
三、QStackWidget的信號和槽函數
QStackWidget中的信號和槽函數非常重要,正是由於這些信號和槽函數的存在,我們才能夠方便地進行UI元素的切換。
下面給出一個簡單的信號槽函數的實例,在mainwindow.cpp文件中進行如下代碼處理:
connect(btn1,SIGNAL(clicked()),stack,SLOT(setCurrentIndex(0))); connect(btn2,SIGNAL(clicked()),stack,SLOT(setCurrentIndex(1))); connect(btn3,SIGNAL(clicked()),stack,SLOT(setCurrentIndex(2)));
這裡我們分別將三個QPushButton的點擊事件與setCurrentIndex函數綁定,實現了UI元素的切換。
其中btn1表示切換到第一個控制項,btn2表示切換到第二個控制項,btn3表示切換到第三個控制項。
四、QStackWidget的注意事項
在使用QStackWidget時,有一些需要注意的地方。
首先,QStackWidget中一般不建議添加太多的控制項,儘可能讓子控制項保持簡潔和精簡。
其次,在添加控制項時,需要注意控制項的順序,因為setCurrentIndex函數是需要綁定子控制項的索引位置的。
最後,注意不要重複添加相同的控制項到QStackWidget中。
五、總結
QStackWidget是Qt中非常實用的一個窗體元素切換類,可以使程序實現較為複雜的UI界面模型。
在使用QStackWidget時,我們需要先將它添加到窗口中,並添加需要展示的子控制項,最後在進行信號槽函數的綁定。
同時,我們也需要注意子元素的添加順序和不要重複添加相同的子控制項到QStackWidget中。
原創文章,作者:BHTVU,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/372363.html