QtLinuxでの構成ネットワークIPアドレスツールのネットワークエディターのソースコードの分析

Linuxでは、ここでLinuxはさまざまなUbuntuシステムなどを指しているため、個別にテストできます。
キーコードは次のとおりです。
主なことは、2つのプロセスを使用して最初にIPを設定し、次にゲートウェイを設定することです。
単一のQProcessオブジェクトは2つのことを実行できないようです。
完全なuiコードについては、次を参照してください
。networkEditor.zip:
独自のコードをテストに追加してください。追加しない場合は、以前の記事またはBaiduを確認してください。

//添加IP
    QProcess *process = new QProcess;
    QStringList args;
    args << "-c" << QString("echo %1 | sudo -S ifconfig %2 %3 netmask %4").arg(mPassword).arg(mInterfaceName).arg(mIpAddress).arg(mNetmask);
    process->execute("/bin/sh",args);
    int exitCode = process->exitCode();
    if( exitCode!= QProcess::NormalExit ){
    
    
        qDebug()<<"set ip failed";
        return;
    }else{
    
    
        qDebug()<<"set ip ok";

    }
    process->waitForFinished();
    delete process;
    //添加网关
    QProcess *process1 = new QProcess;
    QStringList args1;
    args1 << "-c" << QString("echo %1 | sudo -S route add default gw %2").arg(mPassword).arg(mGateway);
    process1->execute("/bin/sh",args1);
    if( exitCode!= QProcess::NormalExit ){
    
    
        qDebug()<<"set gw failed";
        return;
    }else{
    
    
        qDebug()<<"set gw ok";
        emit sigUpdateIP();
        QMessageBox::information(0,"提示","IP设置成功");

    }
    process1->waitForFinished();
    delete process1;
    close();

おすすめ

転載: blog.csdn.net/poolooloo/article/details/108461799