多路h265监控录放开发-(6)完成相机配置读取和列表显示列表显示

发布于:2024-06-25 ⋅ 阅读:(44) ⋅ 点赞:(0)

xviewer.cpp

void XViewer::RefreshCams()
{
    auto c = XCameraConfig::Instance();
    ui.cam_list->clear();
    int count = c->GetCamCount();
    for (int i = 0; i < count; i++)
    {
        auto cam = c->GetCam(i);
        auto item = new QListWidgetItem(
            QIcon(":/XViewer/img/cam.png"), C(cam.name));
        ui.cam_list->addItem(item);
    }
}//119

XViewer::XViewer(QWidget *parent)
    : QWidget(parent)
{
    ui.setupUi(this);
    ui.normal->setVisible(false);

    //setWindowFlags: 这是一个成员函数,用于设置窗口的各种标志(flags)。
   // Qt::FramelessWindowHint: 这是一个标志(flag),表示窗口应该是无边框的,不会有默认的标题栏和边框。
    setWindowFlags(Qt::FramelessWindowHint);

    //布局head和body 垂直布局器
    auto vlay = new QVBoxLayout();
    //边框间距
    vlay->setContentsMargins(0, 0, 0, 0);
    //元素间距,head and body的间距为0
    vlay->setSpacing(0);
    vlay->addWidget(ui.head);
    vlay->addWidget(ui.body);
    this->setLayout(vlay);

    //相机列表 和相机预览
    //水平布局器
    auto hlay = new QHBoxLayout();
    ui.body->setLayout(hlay);
    //边框间距
    hlay->setContentsMargins(0, 0, 0, 0);
    hlay->addWidget(ui.left);
    hlay->addWidget(ui.cams);
    
    //
  /// 初始化右键菜单
  // 视图=》  1 窗口
  //          4 窗口
    auto m = left_menu_.addMenu(C("视图"));
    auto a = m->addAction(C("1窗口"));
    connect(a, SIGNAL(triggered()), this, SLOT(View1()));
    a = m->addAction(C("4窗口"));
    connect(a, SIGNAL(triggered()), this, SLOT(View4()));
    a = m->addAction(C("9窗口"));
    connect(a, SIGNAL(triggered()), this, SLOT(View9()));
    a = m->addAction(C("16窗口"));
    connect(a, SIGNAL(triggered()), this, SLOT(View16()));

    //默认九窗口
    View9();

    //刷新左侧摄像机列表
    XCameraConfig::Instance()->Load(CAM_CONF_PATH);//119
    {
        XCameraData cd;
        strcpy(cd.name, "camera1");
        strcpy(cd.save_path, ".\\camera1\\");
        strcpy(cd.url,
            "rtsp://test:x12345678@192.168.2.64/h264/ch1/main/av_stream");
        strcpy(cd.sub_url,
            "rtsp://test:x12345678@192.168.2.64/h264/ch1/sub/av_stream");
        XCameraConfig::Instance()->Push(cd);
    }//119

    RefreshCams();
}


网站公告

今日签到

点亮在社区的每一天
去签到