Qt5_隨機產生MAC地址並在QLabel中顯示

MAC地址是無線網絡中很重要的概念,在界面設計中,如果我們要顯示不同的客戶端,MAC將是一個很重要的顯示參數。今天我們來講一講如何在Qt中隨機產生一組MAC地址,並將其顯示在界面上。當然實際生活中,我們需要讀取MAC地址來顯示,這裏只是爲了測試顯示功能,因此在系統中隨機生成了MAC地址。
MAC地址是由一組十六進制的數字和短線“-”組成的。我們的方法是,先定義一個存儲了這16個符號的char類型的數組,然後定義一個char類型的MACAddr變量用來從符號數組中隨機選取不同位置的符號,最後在加上短線即可。
具體代碼如下:

//mainwindow.h
    char HEXCHAR[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};//符號數組
    char genMACAddr[MAC_ADDR_LENGTH];//隨機產生的一組16進制數
    char fmtMACAddr[FMT_MAC_ADDR_LEN]={'0','0','-','0','0','-','0','0','-','0','0','-','0','0','-','0','0','\0'};//最終存放MAC地址的字符串
    void GENMACADDR();//生成MAC地址的函數
    void formatMACAddr();//子函數
//mainwindow.cc
void MainWindow::GENMACADDR()
{
    int n = 0;
    for(int i = 0; i < MAC_ADDR_LENGTH; i++){
    n = qrand()%16;
    genMACAddr[i] = HEXCHAR[n];
    }
    formatMACAddr();
}
void MainWindow::formatMACAddr()
{
    unsigned short i = 0;
    unsigned short n = 0;
    //QString mac_string[50] ="";
    for(i = 0; i < MAC_ADDR_LENGTH;i++,n++){
        if(fmtMACAddr[n]!='-')
            {
            fmtMACAddr[n] = genMACAddr[i];
        }
        else{
            n++;
            fmtMACAddr[n] = genMACAddr[i];
        }
    }
}
//使用的地方:
for(int i = 0; i<10; i++)
        {
        //qsrand(time(NULL));//如果用時間作爲種子,由於程序運行太快,時間基本不變,所以最終產生的多個MAC地址是一樣的。因此改爲使用i。
        qsrand(i);
        GENMACADDR();
        QString string(fmtMACAddr);
        label_ap_sta_mac[i] = new QLabel(string);
        }

最終結果如下圖所示:
運行結果圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章