zoukankan      html  css  js  c++  java
  • 在linux,arm上的屏幕搜索wifi并连接(qt,多选择,wifi按信号排列)转

    先上代码!!

    #include "widget.h"
    #include "ui_widget.h"
    #include <QVBoxLayout>
    #include <QMessageBox>




    Widget::Widget(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::Widget)
    {
        ui->setupUi(this);


        int i =0;
        int j =0;
        int t =0;


        QVBoxLayout *groupBoxLayout;
        groupBoxLayout = new QVBoxLayout;


        system("iwlist wlan1 scan >./temp ");
        system("grep -E "SSID|Quality" temp >./grepTemp");
        system("grep -v "x00" grepTemp >./temp");
        QString fileName;
        fileName = "/home/c/qt/WifiSelect/temp";
        QFile file(fileName);
        if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
        {
            qDebug()<<"!";
            return;
        }
        QTextStream in(&file);
        QString line = in.readLine();
        while (i<20)
        {
            line = in.readLine();


            for(t=27;t<line.size()-1;t++)       //take off  other words
            {
                wifiName[i] +=line[t];
            }
            line = in.readLine();
            for(t=28;t<30;t++)       //take off  other words
            {
                temp[i] +=line[t];
            }
            i++;
        }
        for(i=0;i<20;i++)
        {
            qDebug()<<"temp"<<temp[i];
            qDebug()<<"name"<<wifiName[i];
        }
        for(i=0;i<19;i++)
        {
            for(j=1;j<20;j++)
            {
                if(temp[i]<temp[j])
                {
                    transfer = temp[i];
                    temp[i] = temp[j];
                    temp[j] = transfer;


                    transfer =wifiName[i];
                    wifiName[i] = wifiName[j];
                    wifiName[j] = transfer;
                }
            }
        }
        i =0;
        j =0;
        int k=0;
        while(i<10)
        {


            if(wifiName[j] == '')
            {
               // break;
                k++;
                if(k ==10)
                {
                    qDebug()<<"false";
                    QMessageBox messageBox;
                    messageBox.setText(tr("无法搜索WLAN信号"));
                    messageBox.setIcon(QMessageBox::Warning);
                    messageBox.exec();
                }
            }
            else if(!(wifiName[j] ==''))
            {
                radioBtn[i] = new QRadioButton;
                radioBtn[i]->setText(wifiName[j]);
                groupBoxLayout->addWidget(radioBtn[i]);
                i++;
            }
            j++;
        }


    /*
        QTextStream in(&file);
        QString line = in.readLine();
        while (i<10)
        {
            line = in.readLine();
            QString temp;
            for(t=27;t<line.size()-1;t++)       //take off  other words
            {
                temp +=line[t];
            }
            qDebug()<<temp;
            if(!(temp ==''))
            {
                radioBtn[i] = new QRadioButton;
                radioBtn[i]->setText(temp);
                groupBoxLayout->addWidget(radioBtn[i]);
                i++;
            }
        }
    */
        ui->groupBox->setLayout(groupBoxLayout);
      //  system("ping 192.168.0.223");




    }


    Widget::~Widget()
    {
        delete ui;
    }


    void Widget::on_cancelBtn_clicked()
    {
        this->close();
    }


    void Widget::on_connectBtn_clicked()
    {
        if(radioBtn[0]->isChecked())
        {
            QString wifiName = radioBtn[0]->text();
            QString wifiConnect = tr("iwconfig wlan1 essid "%1" ").arg(wifiName);
            system(wifiConnect.toAscii());
        }
        if(radioBtn[1]->isChecked())
        {
            QString wifiName = radioBtn[1]->text();
            QString wifiConnect = tr("iwconfig wlan1 essid "%1" ").arg(wifiName);
            system(wifiConnect.toAscii());
        }
        if(radioBtn[2]->isChecked())
        {
            QString wifiName = radioBtn[2]->text();
            QString wifiConnect = tr("iwconfig wlan1 essid "%1" ").arg(wifiName);
            system(wifiConnect.toAscii());
        }
        if(radioBtn[3]->isChecked())
        {
            QString wifiName = radioBtn[3]->text();
            QString wifiConnect = tr("iwconfig wlan1 essid "%1" ").arg(wifiName);
            system(wifiConnect.toAscii());
        }
        if(radioBtn[4]->isChecked())
        {
            QString wifiName = radioBtn[4]->text();
            QString wifiConnect = tr("iwconfig wlan1 essid "%1" ").arg(wifiName);
            system(wifiConnect.toAscii());
        }
        if(radioBtn[5]->isChecked())
        {
            QString wifiName = radioBtn[5]->text();
            QString wifiConnect = tr("iwconfig wlan1 essid "%1" ").arg(wifiName);
            system(wifiConnect.toAscii());
        }
        if(radioBtn[6]->isChecked())
        {
            QString wifiName = radioBtn[6]->text();
            QString wifiConnect = tr("iwconfig wlan1 essid "%1" ").arg(wifiName);
            system(wifiConnect.toAscii());
        }
        if(radioBtn[7]->isChecked())
        {
            QString wifiName = radioBtn[7]->text();
            QString wifiConnect = tr("iwconfig wlan1 essid "%1" ").arg(wifiName);
            system(wifiConnect.toAscii());
        }
        if(radioBtn[8]->isChecked())
        {
            QString wifiName = radioBtn[8]->text();
            QString wifiConnect = tr("iwconfig wlan1 essid "%1" ").arg(wifiName);
            system(wifiConnect.toAscii());
        }
        if(radioBtn[9]->isChecked())
        {
            QString wifiName = radioBtn[9]->text();
            QString wifiConnect = tr("iwconfig wlan1 essid "%1" ").arg(wifiName);
            system(wifiConnect.toAscii());
        }
        QMessageBox messageBox;
        messageBox.setText(tr("连接成功!"));
        messageBox.exec();
        this->close();
    }

    效果:

    欢迎提问,请叫我红领巾

    头文件:

      1. #ifndef WIDGET_H  
      2. #define WIDGET_H  
      3.   
      4. #include <QWidget>  
      5. #include <QFile>  
      6. #include <QDebug>  
      7. #include <QRadioButton>  
      8.   
      9. namespace Ui {  
      10. class Widget;  
      11. }  
      12.   
      13. class Widget : public QWidget  
      14. {  
      15.     Q_OBJECT  
      16.       
      17. public:  
      18.     explicit Widget(QWidget *parent = 0);  
      19.     ~Widget();  
      20.   
      21.   
      22.       
      23. private:  
      24.     Ui::Widget *ui;  
      25.     QString transfer;  
      26.     QString temp[20];  
      27.     QString wifiName[20];  
      28.     QRadioButton *radioBtn[10];  
      29.   
      30. private slots:  
      31.     void on_cancelBtn_clicked();  
      32.     void on_connectBtn_clicked();  
      33. };  
      34.   
      35. #endif // WIDGET_H 
      36. http://www.360doc.com/content/14/0523/13/6828497_380189731.shtml
  • 相关阅读:
    HttpServletRequest和HttpServletResponse
    .NET Core 通过 Ef Core 操作 Mysql
    spring-boot整合shiro实现权限管理
    spring-boot整合mongodb多数据源的案例
    spring-boot整合mybaits多数据源动态切换案例
    spring-boot整合Mybatis多数据源案例
    spring-boot整合mongodb的案例
    spring-boot和redis的缓存使用
    spring-boot 定时任务案例
    spring-cloud:熔断监控Hystrix Dashboard和Turbine的示例
  • 原文地址:https://www.cnblogs.com/xihong2014/p/7282141.html
Copyright © 2011-2022 走看看