Ping sur qt

Contenu du snippet

Suite à un énorme ennui en cours d'info et de nombreuses recherches sur le net j'ai développé un petit programme sur QT permettant de faire un ping. il n'est fonctionnel que sur Windows.

Source / Exemple :


___________________________
Main.cpp
___________________________
#include <QtGui/QApplication>
#include "qt_ping.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QT_Ping w;
    w.show();
    
    return a.exec();
}

____________________________
QT_ping.h
____________________________
#ifndef QT_PING_H
#define QT_PING_H

#include <QMainWindow>
#include <QProcess>
#include <QMessageBox>
#include <QtNetwork/QTcpSocket>

namespace Ui {
class QT_Ping;
}

class QT_Ping : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit QT_Ping(QWidget *parent = 0);
    ~QT_Ping();
    
private slots:
    void on_Commencer_clicked();
    void Reception();

    void on_actionNouveau_triggered();

private:
    Ui::QT_Ping *ui;
    QProcess ProcessPing;
     QString Buffer;
};

#endif // QT_PING_H

________________
QT_ping.cpp 
_______________

#include "qt_ping.h"
#include "ui_qt_ping.h"
#include <QDebug>

QT_Ping::QT_Ping(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::QT_Ping)
{
    ui->setupUi(this);
    // connexion au slot de réception du ping
    connect(&ProcessPing,SIGNAL(readyReadStandardOutput()),this,SLOT(Reception()) );
}

QT_Ping::~QT_Ping()
{
    delete ui;
}

//commencer un ping
void QT_Ping::on_Commencer_clicked()
{

   // Si ping successif netoyage de la fenetre de resultat
   if(ui->ResultPing->toPlainText()!="")
   ui->ResultPing->setText("");

  // Vérification adresse tapée
  if ( ui->AdresseEdit->text()== "")
  {
    QString msg=" Pas d'adresse tapée ";
    QMessageBox::warning(this,"Echec d'adresse' ",msg);
  }
  else
  {
     // préparation du ping argument + commande a appeler
     QStringList arguments;
     QString program = "ping";
     arguments << ui->AdresseEdit->text();
     ProcessPing.start(program,arguments);
  }
}

// slot de reception du signal pret a lire
void QT_Ping::Reception()
{
   // Mise en page pour le fun
        ui->ResultPing->setFontWeight(QFont::Bold);

    // affichage des résultat
    ui->ResultPing->insertPlainText(ProcessPing.readAll());
}

//néttoyage interface
void QT_Ping::on_actionNouveau_triggered()
{
    ui->AdresseEdit->setText("");
    ui->ResultPing->setText("");

}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cs_LoVerMaKi)