在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] == '\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();
}
效果:
欢迎提问,请叫我红领巾
头文件:
- #ifndef WIDGET_H
- #define WIDGET_H
- #include <QWidget>
- #include <QFile>
- #include <QDebug>
- #include <QRadioButton>
- namespace Ui {
- class Widget;
- }
- class Widget : public QWidget
- {
- Q_OBJECT
- public:
- explicit Widget(QWidget *parent = 0);
- ~Widget();
- private:
- Ui::Widget *ui;
- QString transfer;
- QString temp[20];
- QString wifiName[20];
- QRadioButton *radioBtn[10];
- private slots:
- void on_cancelBtn_clicked();
- void on_connectBtn_clicked();
- };
- #endif // WIDGET_H
- http://www.360doc.com/content/14/0523/13/6828497_380189731.shtml
在linux,arm上的屏幕搜索wifi并连接(qt,多选择,wifi按信号排列)转的更多相关文章
- 解决Linux主机上的 远程MySQL客户端无法连接的问题
无法连接到 MySQL 数据库可能的原因有: 1. PHP 无法连接 MySQL 可能是 PHP 配置不正确,没加上连接 MySQL 的功能. 2. MySQL 软件包升级,但没有升级数据库,或安装 ...
- ARM上的linux如何实现无线网卡的冷插拔和热插拔
ARM上的linux如何实现无线网卡的冷插拔和热插拔 fulinux 凌云实验室 1. 冷插拔 如果在系统上电之前就将RT2070/RT3070芯片的无线网卡(以下简称wlan)插上,即冷插拔.我们通 ...
- 如何在linux主机上运行/调试 arm/mips架构的binary
如何在linux主机上运行/调试 arm/mips架构的binary 原文链接M4x@10.0.0.55 本文中用于展示的binary分别来自Jarvis OJ上pwn的add,typo两道题 写这篇 ...
- 用shell脚本实现linux系统上wifi模式(STA和soft AP)的转换
转载请注明出处:http://blog.csdn.net/hellomxj1/ 功能:在linux系统上实现wifi STA与AP功能的转换 实现成果:1.加入wifipassword账户add_wi ...
- 应聘linux/ARM嵌入式开发岗位
**************************************************************** 因为发在中华英才和智联招聘没有人采我所以我 在这里发布我的个人简历希望 ...
- 【Qt开发】【ARM-Linux开发】 QT在ARM上显示字体的问题
在PC机上利用QT开发的应用程序在设置字体时,在PC上运行,可根据自己的设置,字体随之变大或变小.而移植到ARM上运行时发现,显示字体与所设置的字体不用,字体普遍偏小.经过上网搜索发现,是环境变量字库 ...
- 孤荷凌寒自学python第六十一天在Fedora28版的linux系统上找搭建本地Mongodb数据服务
孤荷凌寒自学python第六十一天在Fedora28版的linux系统上找搭建本地Mongodb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第七天.成功在本地搭建 ...
- Linux主机上使用交叉编译移植u-boot到树莓派
0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jes ...
- 请不要重复犯我在学习Python和Linux系统上的错误
本人已经在运维行业工作了将近十年,我最早接触Linux是在大二的样子,那时候只追求易懂,所以就选择了Ubuntu作为学习.使用的对象,它简单.易用.好操作.界面绚丽,对于想接触Linux的新手来说是非 ...
随机推荐
- java第五天
p37: 练习1 /** * Created by xkfx on 2017/2/22. */ public class DataOnly { int anInt; char aChar; publi ...
- Python面试题之Python反射详解
0x00 前言 反射,可以理解为利用字符串的形式去对象中操作成员属性和方法 反射的这点特性让我联想到了exec函数,也是把利用字符串的形式去让Python解释器去执行命令 Python Version ...
- bzoj1626 / P2872 [USACO07DEC]道路建设Building Roads
P2872 [USACO07DEC]道路建设Building Roads kruskal求最小生成树. #include<iostream> #include<cstdio> ...
- 20145204《Java程序设计》第3周学习总结
20145204<Java程序设计>第3周学习总结 教材学习内容总结 对象和类. Java有基本类型和类类型这两个类型系统.本章主要介绍类类型.定义类时用关键词class,利用类建立对象实 ...
- 学习Zookeeper之第3章Zookeeper内部原理
第 3 章 Zookeeper 内部原理 3.1 选举机制 3.2 节点类型 3.3 stat 结构体 3.4 监听器原理 1)监听原理详解 2)常见的监听 3.5 写数据流程 第 3 章 Z ...
- linux下查看当前登陆的用户数目
在shell下输入以下语句即可获取: who | awk '{print $1}' | sort | uniq | wc -l
- 面向对象之php多态
php是面向对象的脚本语言,而我们都知道,面向对象的语言具有三大特性:封装,继承,多态(接口的多种不同的实现方式即为多态). 封装是类的构建过程,php具有.php也具有继承的特性.唯独这个多态,ph ...
- ListBox的虚拟可视化技术
在ListBox中承载大量的数据项时,可采用虚拟可视化技术来提高控件显示数据的性能.如下代码: <ListBox.ItemsPanel> <It ...
- (GoRails) Credential
之前的博客:https://www.cnblogs.com/chentianwei/p/9167489.html Guide: https://guides.rubyonrails.org/secu ...
- charles工具过滤腾讯视频播放器广告
Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当程序连接Charles的代理访问互联网时,Charles可以监控这个程序发送和接收的所有数据.它允许一个开发者查看所有连接互联 ...