一、currentindexchanged介紹
在開發網頁的過程中,經常需要實現導航菜單的切換,currentindexchanged事件就是用來處理這個功能的。該事件是屬於QTabWidget控件的,作用是監測Tab選項的變化並且根據當前Tab選項顯示不同的內容。
二、currentindexchanged的使用
currentindexchanged事件主要包括兩部分:一是實現選項卡選中與非選中的顏色變化;二是在不同Tab選項下,顯示不同的內容。
//選項卡選中與非選中顏色變化代碼示例
QTabWidget{
background-color:rgb(255,255,255)
}
QTabWidget::tab-bar{
alignment:center
}
QTabBar::tab{
background-color:rgb(200,200,200)
}
QTabBar::tab:selected{
background-color:rgb(255,0,0)
}
輔助上面的代碼,我們可以在實現了選中與非選中顏色變化的基礎上,添加函數來實現在不同選項下顯示不同的內容,如下代碼示例:
//選項顯示不同內容示例
void MainWindow::on_tabWidget_currentChanged(int index)
{
switch(index){
case 0:{ui->textBrowser->setText(tr("這是第一個選項"));break;}
case 1:{ui->textBrowser->setText(tr("這是第二個選項"));break;}
case 2:{ui->textBrowser->setText(tr("這是第三個選項"));break;}
case 3:{ui->textBrowser->setText(tr("這是第四個選項"));break;}
default:break;
}
}
三、currentindexchanged的注意事項
在使用currentindexchanged事件時,需要注意:一是事件函數必須在調用之前設置connect連接;二是函數參數代表的是珂能夠被關閉 (選項卡) 的選項(從0開始計算),而非當前選項(這個要注意)。
四、示例代碼
下面是一個完整的使用currentindexchanged事件的示例:
//頭文件部分
#include
#include
#include
#include
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
private slots:
void on_tabWidget_currentChanged(int index);
};
//cpp源文件部分
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->tabWidget,SIGNAL(currentChanged(int)),this,SLOT(on_tabWidget_currentChanged(int)));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_tabWidget_currentChanged(int index)
{
switch(index){
case 0:{ui->textBrowser->setText(tr("這是第一個選項"));break;}
case 1:{ui->textBrowser->setText(tr("這是第二個選項"));break;}
case 2:{ui->textBrowser->setText(tr("這是第三個選項"));break;}
case 3:{ui->textBrowser->setText(tr("這是第四個選項"));break;}
default:break;
}
}
//樣式文件示例
QTabWidget{
background-color:rgb(255,255,255)
}
QTabWidget::tab-bar{
alignment:center
}
QTabBar::tab{
background-color:rgb(200,200,200)
}
QTabBar::tab:selected{
background-color:rgb(255,0,0)
}
原創文章,作者:PSSK,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/146396.html
微信掃一掃
支付寶掃一掃