【VS+QT开发】获取本地网络信息小软件(C++)
简介
考虑到之前的那一个安装可能实现上有点复杂,也不知道你愿不愿意看。
所以,这里就实现一个简单的。
对了,考虑到我垃圾般的程序员审美,所以,如果觉得不好看的话,后期可以自己尝试看看能不能挑一下颜色,图片等一系列操作的。
- 但是,下面的这版本,就是全用代码实现的。
- 原因很简单,就是我担心你不太会用Qt designer
- 但是,其实这个还是蛮简单的。就是简单大拖动一下就好。只需要记住这个ui的这个控件,叫什么名字,自己后期针对性的控制一下就好了。
开发环境:
VS2017 + QT
- 关于上面的这个东西怎么配置可以参考
- https://blog.csdn.net/a19990412/article/details/82882697
由于开发环境的原因导致的不一致问题:
- 由于是在VS上开发QT文件,所以网络上的很多QT代码需要做修改之后才行。放心,我这里的代码都是可以直接在VS可以运行成功的QT代码
- 主要形式体现在:
- 导入文件的开头变成小写的q而不是网络上常见的Q
- ui,在VS上不再是指针,而是一个类了。所以,操作起来会比较像Python。(这个你应该很熟)
这里的话,创建项目的方式也是非常简单。
- 具体可以参照
- https://www.jianshu.com/p/a81350d630dd
- 文章的后半部分
我这的项目名字是: QtGuiApplicationTest
所以,在创建的文件当中,我会需要修改两个文件。
QtGuiApplicationTest.h
QtGuiApplicationTest.cpp
QtGuiApplicationTest.h
#pragma once
#pragma execution_character_set("utf-8")
#include <QtWidgets/QMainWindow>
#include "ui_QtGuiApplicationTest.h"
#include <qlabel.h>
#include <qpushbutton.h>
#include <qgridlayout.h>
#include <qlineedit.h>
#include <qmessagebox.h>
#include <QtNetwork\qhostinfo.h>
#include <QtNetwork\qnetworkinterface.h>
class QtGuiApplicationTest : public QMainWindow
{Q_OBJECTpublic:QtGuiApplicationTest(QWidget *parent = Q_NULLPTR);void getHostInformation();
public slots:void slotDetail();
private:Ui::QtGuiApplicationTestClass ui;QLabel *hostLable;QLineEdit *LineEditLocalHostName;QLabel *ipLabel;QLineEdit *LineEditAddress;QPushButton * detailBtn;QGridLayout *mainLayout;
};
QtGuiApplicationTest.cpp
#include "QtGuiApplicationTest.h"QtGuiApplicationTest::QtGuiApplicationTest(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);hostLable = new QLabel(tr("主机名:"));LineEditLocalHostName = new QLineEdit;ipLabel = new QLabel(tr("IP 地址:"));LineEditAddress = new QLineEdit;detailBtn = new QPushButton(tr("详细"));mainLayout = new QGridLayout(ui.centralWidget);mainLayout->addWidget(hostLable, 0, 0);mainLayout->addWidget(LineEditLocalHostName, 0, 1);mainLayout->addWidget(ipLabel, 1, 0);mainLayout->addWidget(LineEditAddress, 1, 1);mainLayout->addWidget(detailBtn, 2, 0, 1, 2);getHostInformation();connect(detailBtn, SIGNAL(clicked()), this, SLOT(slotDetail()));
}void QtGuiApplicationTest::getHostInformation() {QString localHostName = QHostInfo::localHostName();LineEditLocalHostName->setText(localHostName);QList<QNetworkInterface> list = QNetworkInterface::allInterfaces();int templen = 0;QString ip = "";for (int i = 0; i < list.count(); ++i) {QNetworkInterface interface = list.at(i);QList<QNetworkAddressEntry> entryList = interface.addressEntries();if (entryList.count() < templen) continue;ip = entryList.at(entryList.count()-1).ip().toString();templen = entryList.count();}LineEditAddress->setText(ip);
}void QtGuiApplicationTest::slotDetail() {QString detail = "", tempdetail="";QList<QNetworkInterface> list = QNetworkInterface::allInterfaces();int templen = 0;for (int i = 0; i < list.count(); ++i) {QNetworkInterface interface = list.at(i);QList<QNetworkAddressEntry> entryList = interface.addressEntries();if (entryList.count() < templen) continue;tempdetail = tr("设备:") + interface.name() + "\n";tempdetail = tempdetail + tr("硬件地址:") + interface.hardwareAddress() + "\n";for (int j = 0; j < entryList.count(); ++j) {QNetworkAddressEntry entry = entryList.at(j);tempdetail = tempdetail + " " + tr("IP 地址:") + entry.ip().toString() + "\n";tempdetail = tempdetail + " " + tr("子网掩码:") + entry.netmask().toString() + "\n";tempdetail = tempdetail + " " + tr("广播地址:") + entry.broadcast().toString() + "\n";}detail = tempdetail;templen = entryList.count();}QMessageBox::information(this, tr("Detail"), detail);
}
配置上的操作
还需要把 Qt5Networkd.lib
这个库添加到项目的链接器中的附加依赖项。
就把上面这个东西,复制上去就好了。(只是名字,它会自己找的。。)
运行效果
【VS+QT开发】获取本地网络信息小软件(C++)相关推荐
- QT获取本地网络信息
QT获取本地网络信息 开发工具与关键技术:QtCreator.C++ 作者:何任贤 撰写时间:2020年06月10日 获取本机网络信息要在工程文件(.Pro)加上 QT += network 然后就是 ...
- uniapp开发获取用户位置信息功能解析
uniapp开发获取用户位置信息功能解析 问题描述 uniapp相关接口 1.uni.authorize 提前向用户发起授权请求. 接口描述及demo演示 2.uni.getLocation 获取当前 ...
- 如何获取本地时间信息,并把getDay()函数获取到的日期改为日一二三四五六
如何获取本地时间信息,并把getDay()函数获取到的日期改为日一二三四五六 <!DOCTYPE html> <html><head><meta charse ...
- 微信服务号开发-获取用户位置信息
微信服务号开发-获取用户位置信息 在微信公众号开发的中,获取用户位置信息是非常常见的功能需求,通过用户的位置信息,可以做一些地图导航,以及基于LBS的营销活动. 下面将介绍微信服务号获取用户位置信息的 ...
- 关于IOS获取本地通讯录信息(包含iOS9.0前后)
在ios开发当中,获取用户本地的通讯录功能愈加频繁的出现,七两自己也在自己公司的项目当中遇到的获取本地的通讯录信息的功能(俗称"种子用户功能",太可怕了).对此七两总结了自己使用本 ...
- netcore 获取本地网络IP地址
.net framework 下面可以用下面的代码获取到本地网络ip地址.netcore下面这个代码也依然可以用 System.Net.Dns.GetHostName() System.Net.Dns ...
- WinPcap 获取本地适配器信息
开始学习WinPcap的相关开发 从最简单的开始, 获取本地的网卡信息 #include <stdio.h> #include <stdlib.h>#define HAVE_R ...
- IOS swift开发——获取设备定位信息
作为GIS开发人员,学习任何Android或者swift开发语言,可能第一时间想到的就是获取设备的定位信息.这里就来简述一下,我使用swift获取IOS定位信息的过程. 目录 添加后台定位能力 模拟器 ...
- C# 获取本地IP信息
实例地址:C#(WPF)获取本地IP地址C#编程-C#文档类资源-CSDN下载 获取正在使用IP: using System.Net; using System.Net.NetworkInformat ...
最新文章
- C#2.0实例程序STEP BY STEP--实例二:数据类型
- 关于大XML文件与大节点处理(System.Xml.XmlTextReader)
- [转载]在线文档预览方案-Office Web Apps
- 用python画烟花-python 实现漂亮的烟花,樱花,玫瑰花
- 哪款浏览器好用_碉堡了!火狐浏览器发布重大更新,谷歌Chrome请hold住!
- 把C#.NET程序移植到DB2上的经验浅谈(C#连接DB2可以用IBM.Data.DB2.dll)
- 30分钟轻松入门Spring MVC
- Java Date与SimpleDateFormat
- Fiddler的一系列学习瞎记3
- 罗盘时钟制作代码_抖音超火的姓氏罗盘壁纸,安卓和苹果都能做
- java三大特性(封装、继承、多态)
- 软件开发过程中的Visio使用
- 二十三又是谁的二十三
- NMAKE 详解(整理转载)
- 电池、电机、螺旋桨搭配
- C语言之字符串(草稿)
- 网站服务器商标属于哪类,网络平台商标注册属于什么类别?-商标分类表-猪八戒知识产权...
- 编译原理实验二 自上而下语法分析
- 北大软微19计算机考研招生,19年北大软微初试高分学长学姐经验贴
- Google Earth Engine(GEE)——Sentinel-3 OLCI EFR:海洋和陆地彩色地球观测全分辨率数据集
热门文章
- x5675相当于e5_如何辨别电商电脑主机是否二手翻新硬件?揭秘i7级E5电脑主机猫腻...
- 不同工作组能访问吗_“辣椒”的辣味从哪里来?有方法能测量不同辣椒的辣度吗?...
- Python中的join()函数的用法
- TCP/IP拥塞控制复习
- rsync同步(2010年写作)
- 索引,表增删改统计,加锁查具体情况(推荐)
- mysql数据库的F5_windows下mysql每天定时备份数据库几种方法
- SPP pooling layer
- 【数据平台】Python解析Ngnix日志
- Java机器学习库ML之八关于模型迭代训练的试验