您的位置:首页 > 其它

关于window下和Ubuntu下获取本地ip地址的方法;2.关于通过槽函数名执行槽函数的办法,3.QString初始化的意义

2017-03-23 11:49 423 查看
1.首先网上的两种方法window上可行,但是Ubuntu 显示127.0.0.1   QHostInfoa=QHostInfo::fromName(QHostInfo::localHostName());
foreach(const QHostAddress &b, a.addresses()) {
if(b.protocol() == QAbstractSocket::IPv4Protocol) {
qDebug() << __LINE__ << b.toString();
}
}
ubuntu可行,但是window上返回,超过一个的ipadress
foreach(const QHostAddress &a, QNetworkInterface::allAddresses()){
if(a.protocol() == QAbstractSocket::IPv4Protocol && a!=QHostAddress(QHostAddress::LocalHost)){
qDebug() << __LINE__<< a.toString();
}
}
但是没有那种,既可以在双平台可行
后来使用下种方法
QString lds::getLocalIPlike192(bool *ok)
{
if(ok)*ok = false;
foreach(const QHostAddress &a, QNetworkInterface::allAddresses()){
if(a.protocol() == QAbstractSocket::IPv4Protocol){
if(a.toString().startsWith("192.168")) {//局域网
return a.toString();
}
}
}
return "";
}
仅限局域网
2.关于通过槽函数名执行槽函数的办法
这种逆向思维比较别扭,后来使用一直用的方法就能解决
   qDebug() << QMetaObject::invokeMethod(this,
"on_clearAll_clicked",
Qt::QueuedConnection
                              );3.QString初始化的意义一开始对于QString 的isnull没有任何概念, 用的最多的是isempty,在处理mysql   addbindvalue的时候才意识换个观点,如何insert 的时候,插入一个null 的值,那就addbindvalue(QString()) 此时她本身的为isnull
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐