《基于QT5.9.8开发的网络通信调试助手实例2021-7-27》

基于Qt5.9.8,Windows系统开发的网络调试助手,可实现基于TCP和UDP的网络通信,和串口通信,此外还涉及到堆栈界面布局设计,控件背景资源加载和设计等知识。

测试结果,可以成功实现UDP数据的收发。

部分代码展示:

#include "mainwindow.h"

//#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

    : DropShadowWidget(parent)

 //   ui(new Ui::MainWindow)

{

    mode = SETUP;

    setMinimumSize(900, 600);

    setWindowIcon(QIcon(":/mainmenu/img/smartcar.ico"));

    statked_widget=new QStackedWidget();

    title_widget=new TitleWidget();             

    setup_widget=new SetupWidget();   //设置界面

    sendandreceive_widget = new SendandReceiveWidge();  //收发界面

      // advancereceive_widget = new AdvancedReceiveWidge(); //高级收界面

     statked_widget->addWidget(setup_widget);

     statked_widget->addWidget(sendandreceive_widget);

     statked_widget->setContentsMargins(0,0,0,0);

    //设置背景颜色

    QPalette palette;

    palette.setColor(QPalette::Background, Qt::lightGray);

   // palette.setColor(QPalette::Background, Qt::red);

    statked_widget->setPalette(palette);

    statked_widget->setAutoFillBackground(true);

    //垂直布局

    QVBoxLayout *center_layout = new QVBoxLayout();

    center_layout->setSpacing(0);

    center_layout->addWidget(statked_widget);

    center_layout->setSpacing(0);

    center_layout->setContentsMargins(0, 0, 0, 0);

    //垂直布局控件

    QVBoxLayout *main_layout = new QVBoxLayout();

    main_layout->addWidget(title_widget);

    main_layout->setSpacing(0);

    main_layout->addLayout(center_layout);

    main_layout->setSpacing(0);

   main_layout->setContentsMargins(SHADOW_WIDTH, SHADOW_WIDTH, SHADOW_WIDTH, SHADOW_WIDTH);

    this->setLayout(main_layout);

    connect(title_widget,SIGNAL(turnPage(int)),this,SLOT(changepage(int)));

    QPushButton *btn_Senddata;

    btn_Senddata=new QPushButton();

    connect(btn_Senddata,SIGNAL(clicked()),this,SLOT(on_btn_sendData_clicked()));

}

MainWindow::~MainWindow()

{

 //   delete ui;

}

void MainWindow::on_pushButton_clicked()

{

     SendDataA();

}

//发送数据(测试有效)

void MainWindow::SendDataA()

{

    QUdpSocket  *udpSocket;

    udpSocket=new QUdpSocket();

    //端口绑定与解绑操作

    quint16 port=8080;

    udpSocket->bind(port);//绑定到port端口

    udpSocket->abort();//用于解绑端口

    //发送数据报操作

    QByteArray datagram;

    datagram.append(0xAA);//数据报填充字节数据

    QHostAddress RemoteIP("192.168.43.123");//添加IP地址

    quint16 RemotePort(port);//添加远端端口号

    udpSocket->writeDatagram(datagram,RemoteIP,RemotePort);

}

void MainWindow::paintEvent(QPaintEvent *event)

{

    //加载背景图片

    QString skin_name = ":/skin/skin/1_big.png";

   // QString skin_name = ":/skin/bg1.jpg";

    DropShadowWidget::paintEvent(event);

    QDialog::paintEvent(event);

    QPainter painter(this);

    painter.setPen(Qt::NoPen);

    painter.setBrush(Qt::white);

    painter.drawPixmap(QRect(SHADOW_WIDTH, SHADOW_WIDTH, this->width()-2*SHADOW_WIDTH, this->height()-2*SHADOW_WIDTH), QPixmap(skin_name));

}

源代码下载地址:https://download.csdn.net/download/gl1037645565/20526926

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值