###############################################################################
#操作系统:Win7垃圾版
#QT: 4.8.1
#Write By Kinglate 20130805
###############################################################################
1.新建一个QT工程,基类随便即可,本人的是基于MainWindow的。建完之后,将Qt4工程中的* .pro中的第一句“QT+= core gui”改为“QT+= core guinetwork”
2.在*.h文件中包含头文件:#include <QtNetwork>
3.第一步建好界面,在*.ui中添加一个Label文本信息为“本地IP:”然后再添加一个Line Edit并将属性名改为“localIpEdit”即可。
4..接着开始着手写一个获取本机Ip的程序。
5.就写一个返回QString类型的函数来完成这个功能吧!函数名为getIp()。
首先在*.h中申明一个QString常量和一个QString型函数。
在*.h中找到public:在其下面写好这两行代码:
QString localIpStr;
QString getIp();
6.接下来到*.cpp(非main.cpp)中实现这个功能。
在构造函数中写好下面两行代码:
localIpStr = getIp();
ui->localIpEdit->setText(localIpStr);
7.以下为实现getIp()/函数!
QString MainWindow::getIp()//获取本机IP的函数
{
QString myipv4Address;
#ifdef _WIN32
QHostInfo vHostInfo = QHostInfo::fromName(QHostInfo::localHostName());
QList<QHostAddress> vAddressList = vHostInfo.addresses();
#else
QList<QHostAddress> vAddressList = QNetworkInterface::allAddresses();
#endif
for(int i = 0; i < vAddressList.size(); i++)
{
if(!vAddressList.at(i).isNull() &&
vAddressList.at(i) != QHostAddress::LocalHost &&
vAddressList.at(i).protocol() == QAbstractSocket::IPv4Protocol)
{
myipv4Address = vAddressList.at(i).toString();
break;
}
}
return myipv4Address;
}
8.最后编译执行即可!显示结果如下图所示:
附件上包含整个工程。