Files
gstreamerViewer/mainwindow.cpp
Maik Jurischka 69e2f3ae1d first commit
2025-12-18 16:10:55 +01:00

50 lines
1.4 KiB
C++

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QSplitter>
#include <QTabWidget>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
setWindowTitle("GStreamer Camera Viewer");
resize(1400, 900);
setupUI();
}
MainWindow::~MainWindow()
{
delete m_socketClient;
delete ui;
}
void MainWindow::setupUI()
{
// Create socket client
m_socketClient = new SocketClient("/tmp/vizion_control.sock", this);
// Create widgets
m_videoWidget = new VideoViewerWidget(this);
m_pipelineWidget = new GStreamerPipelineWidget(m_socketClient, this);
m_cameraWidget = new CameraControlWidget(m_socketClient, this);
// Create tab widget for controls
QTabWidget* controlTabs = new QTabWidget(this);
controlTabs->addTab(m_pipelineWidget, "Pipeline Control");
controlTabs->addTab(m_cameraWidget, "Camera Control");
// Create vertical splitter: video on top, controls on bottom
QSplitter* mainSplitter = new QSplitter(Qt::Vertical, this);
mainSplitter->addWidget(m_videoWidget);
mainSplitter->addWidget(controlTabs);
mainSplitter->setStretchFactor(0, 3); // Video gets more space
mainSplitter->setStretchFactor(1, 1); // Controls get less space
// Set as central widget
setCentralWidget(mainSplitter);
}