先上代码!!

#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] == '\0')
        {
           // break;
            k++;
            if(k ==10)
            {
                qDebug()<<"false";
                QMessageBox messageBox;
                messageBox.setText(tr("无法搜索WLAN信号"));
                messageBox.setIcon(QMessageBox::Warning);
                messageBox.exec();
            }
        }
        else if(!(wifiName[j] =='\0'))
        {
            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 =='\0'))
        {
            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. #include <QWidget>
    4. #include <QFile>
    5. #include <QDebug>
    6. #include <QRadioButton>
    7. namespace Ui {
    8. class Widget;
    9. }
    10. class Widget : public QWidget
    11. {
    12. Q_OBJECT
    13. public:
    14. explicit Widget(QWidget *parent = 0);
    15. ~Widget();
    16. private:
    17. Ui::Widget *ui;
    18. QString transfer;
    19. QString temp[20];
    20. QString wifiName[20];
    21. QRadioButton *radioBtn[10];
    22. private slots:
    23. void on_cancelBtn_clicked();
    24. void on_connectBtn_clicked();
    25. };
    26. #endif // WIDGET_H
    27. http://www.360doc.com/content/14/0523/13/6828497_380189731.shtml

在linux,arm上的屏幕搜索wifi并连接(qt,多选择,wifi按信号排列)转的更多相关文章

  1. 解决Linux主机上的 远程MySQL客户端无法连接的问题

    无法连接到 MySQL 数据库可能的原因有: 1. PHP 无法连接 MySQL 可能是 PHP 配置不正确,没加上连接 MySQL 的功能. 2. MySQL 软件包升级,但没有升级数据库,或安装 ...

  2. ARM上的linux如何实现无线网卡的冷插拔和热插拔

    ARM上的linux如何实现无线网卡的冷插拔和热插拔 fulinux 凌云实验室 1. 冷插拔 如果在系统上电之前就将RT2070/RT3070芯片的无线网卡(以下简称wlan)插上,即冷插拔.我们通 ...

  3. 如何在linux主机上运行/调试 arm/mips架构的binary

    如何在linux主机上运行/调试 arm/mips架构的binary 原文链接M4x@10.0.0.55 本文中用于展示的binary分别来自Jarvis OJ上pwn的add,typo两道题 写这篇 ...

  4. 用shell脚本实现linux系统上wifi模式(STA和soft AP)的转换

    转载请注明出处:http://blog.csdn.net/hellomxj1/ 功能:在linux系统上实现wifi STA与AP功能的转换 实现成果:1.加入wifipassword账户add_wi ...

  5. 应聘linux/ARM嵌入式开发岗位

    **************************************************************** 因为发在中华英才和智联招聘没有人采我所以我 在这里发布我的个人简历希望 ...

  6. 【Qt开发】【ARM-Linux开发】 QT在ARM上显示字体的问题

    在PC机上利用QT开发的应用程序在设置字体时,在PC上运行,可根据自己的设置,字体随之变大或变小.而移植到ARM上运行时发现,显示字体与所设置的字体不用,字体普遍偏小.经过上网搜索发现,是环境变量字库 ...

  7. 孤荷凌寒自学python第六十一天在Fedora28版的linux系统上找搭建本地Mongodb数据服务

    孤荷凌寒自学python第六十一天在Fedora28版的linux系统上找搭建本地Mongodb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第七天.成功在本地搭建 ...

  8. Linux主机上使用交叉编译移植u-boot到树莓派

    0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jes ...

  9. 请不要重复犯我在学习Python和Linux系统上的错误

    本人已经在运维行业工作了将近十年,我最早接触Linux是在大二的样子,那时候只追求易懂,所以就选择了Ubuntu作为学习.使用的对象,它简单.易用.好操作.界面绚丽,对于想接触Linux的新手来说是非 ...

随机推荐

  1. php面向对象多继承实现

    在PHP面向对象概念编程中,一个子类只能继承一个父类,但是从php5.4后新增traits实现代码复用机制变向达到多继承.Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立 ...

  2. P1270 “访问”美术馆(树形dp)

    P1270 “访问”美术馆 艺术馆最多有100个展室 ------> 节点数$<=100*2<2^{8}=256$ 所以可以开一个$f[i][j]$表示到第$i$个点为止花去$j$分 ...

  3. 20145307陈俊达《网络对抗》Exp4 恶意代码分析

    20145307陈俊达<网络对抗>Exp4 恶意代码分析 基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪 ...

  4. 一个好玩的CTF题

    一个CTF的题目,拿来学习学习 玩了好久,再加上学校一堆破事,最近又开始瞎弄了,找了几个CTF的题目,和别人写的一些内容,也当是学习,也当是看完之后的小结.顺便也说一下如果自己拿到这题目会从哪做起. ...

  5. sql批处理(batch)的简单使用

    批处理指的是一次操作中执行多条SQL语句,相比于一次一次执行效率会提高很多 批处理主要是分两步: 将要执行的SQL语句保存 执行SQL语句 Statement和PreparedStatement都支持 ...

  6. CCNA学习指南 -开放最短路径优先OSPF(单区域)

    在上个世纪九十年代撰写的<TCP/IP协议详解 卷一:协议>的动态选路中,内容大部分还是介绍 RIP路由选择信息协议,在互联网络如此发达的今天,RIP因为它的局限性逐步被OSPF取代. 在 ...

  7. 51Nod 1509 加长棒(隔板法)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1509 思路: 直接去解可行的方法有点麻烦,所以应该用总的方法去减去不可行 ...

  8. 测试工程师 技能要求:java编程,数据库,linux操作系统,自动化测试开发,性能测试,安全测试

    1.具有开发和测试经验,能负责带领大型项目测试 2.掌握或熟悉java编程,熟悉mysql,oracle等db,memcache,nosql等,有互联网行业从业经验 3.可撰写自动化测试工具以及搭建自 ...

  9. Codeforces Round #398 (Div. 2) A,B,C,D

    A. Snacktower time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  10. shell 判断文件是否是可执行文件

    测试变量指定的文件是否存在且是可执行文件.如果存在且是可执行文件,则执行该文件,否则通过chmod命令赋予该文件可执行权限. //test.sh #!/bin/bash echo "ente ...