使用QT实现Mjpeg-streamer的客户端,采用单独的线程进行视频图片的获取

本文介绍了如何使用QT创建Mjpeg-streamer服务器的客户端,通过独立线程获取网络视频流,详细阐述了从服务器搭建到QT界面设计、线程解析图像的步骤,并提供了源码及效果展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. mjpeg-streamer服务器的搭建

  1. 在树莓派上搭建好mjpeg-streamer的服务器,搭建过程可以参考这篇文章mjpg-streamer在树莓派上的使用

2. 简单QT界面的设计

  1. QT的界面布局主要参考了这篇文章,但是我的里面是使用单独开辟的线程进行解析数据流的,这个文章里面是在主线程中完成的。QT界面设计.

3. 使用线程获取网络图片

  1. 使用线程会遇到很多的问题,可以参考这篇文章QT 多线程采用线程池进行网络操作

4. 源码

1. 主函数

#include "loginwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    LoginWindow w;

    w.setWindowFlags(Qt::FramelessWindowHint);
    w.show();
    return a.exec();
}

2. 登录窗口界面代码

1. loginwindow.h

#ifndef LOGINWINDOW_H
#define LOGINWINDOW_H

#include <QMainWindow>
#include <QTcpSocket>
#include <QTimer>
#include "mainwindow.h"

QT_BEGIN_NAMESPACE
namespace Ui { class LoginWindow; }
QT_END_NAMESPACE

class LoginWindow : public QMainWindow
{
    Q_OBJECT

public:
    LoginWindow(QWidget *parent = nullptr);
    ~LoginWindow();

private slots:
    void timerFinish();
    void on_btn_login_clicked();
    void on_btn_logout_clicked();

private:
    Ui::LoginWindow *ui;
    QString login_ipAddr;
    QString login_port;
    int waitCnt;
    QTimer *time;
    QString text;
    QTcpSocket *tcpClient;
    MainWindow *main;
    void init();
};
#endif // LOGINWINDOW_H

2. loginwindow.c

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值