#include <QtWidgets>
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
initMainWindow();
showVideoScreen(4);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::initMainWindow()
{
for (int i = 0; i < 64; i++) {
QLabel *videoLabel = new QLabel;
videoLabel->setObjectName(QString("video%1").arg(i+1));
videoLabel->setFocusPolicy(Qt::StrongFocus);
videoLabel->setAlignment(Qt::AlignCenter);
videoLabel->setStyleSheet("QLabel{background: #333333;}");
videoLabel->installEventFilter(this);
m_videoLabels.append(videoLabel);
}
}
void MainWindow::clearAllVideo()
{
QGridLayout *gridLayout = qobject_cast<QGridLayout*>(ui->widget_video->layout());
for (int i = 0; i < 64; i++) {
gridLayout->removeWidget(m_videoLabels[i]);
m_videoLabels[i]->setVisible(false);
}
}
void MainWindow::showVideoScreen(int screenType)
{
clearAllVideo();
switch (screenType) {
case 1:
{
QGridLayout *gridLayout = qobject_cast<QGridLayout*>(ui->widget_video->layout());
int count = 0;
int row = 0;
int column = 0;
for (int i = 0; i < 64; i++) {
if (i >= 0) {
gridLayout->addWidget(m_videoLabels[i], row, column);
m_videoLabels[i]->setVisible(true);
count++;
column++;
if (column == 1) {
row++;
column = 0;
}
}
if (count == (1*1)) {
break;
}
}
}
break;
case 4:
{
QGridLayout *gridLayout = qobject_cast<QGridLayout*>(ui->widget_video->layout());
int count = 0;
int row = 0;
int column = 0;
for (int i = 0; i < 64; i++) {
if (i >= 0) {
gridLayout->addWidget(m_videoLabels[i], row, column);
m_videoLabels[i]->setVisible(true);
count++;
column++;
if (column == 2) {
row++;
column = 0;
}
}
if (count == (2 * 2)) {
break;
}
}
}
break;
case 6:
{
QGridLayout *gridLayout = qobject_cast<QGridLayout*>(ui->widget_video->layout());
gridLayout->addWidget(m_videoLabels[0], 0, 0, 2, 2);
gridLayout->addWidget(m_videoLabels[1], 0, 2, 1, 1);
gridLayout->addWidget(m_videoLabels[2], 1, 2, 1, 1);
gridLayout->addWidget(m_videoLabels[3], 2, 2, 1, 1);
gridLayout->addWidget(m_videoLabels[4], 2, 1, 1, 1);
gridLayout->addWidget(m_videoLabels[5], 2, 0, 1, 1);
for (int i = 0; i < 6; i++) {
m_videoLabels[i]->setVisible(true);
}
}
break;
case 8:
{
QGridLayout *gridLayout = qobject_cast<QGridLayout*>(ui->widget_video->layout());
gridLayout->addWidget(m_videoLabels[0], 0, 0, 3, 3);
gridLayout->addWidget(m_videoLabels[1], 0, 3, 1, 1);
gridLayout->addWidget(m_videoLabels[2], 1, 3, 1, 1);
gridLayout->addWidget(m_videoLabels[3], 2, 3, 1, 1);
gridLayout->addWidget(m_videoLabels[4], 3, 3, 1, 1);
gridLayout->addWidget(m_videoLabels[5], 3, 2, 1, 1);
gridLayout->addWidget(m_videoLabels[6], 3, 1, 1, 1);
gridLayout->addWidget(m_videoLabels[7], 3, 0, 1, 1);
for (int i = 0; i < 8; i++) {
m_videoLabels[i]->setVisible(true);
}
}
break;
case 9:
{
QGridLayout *gridLayout = qobject_cast<QGridLayout*>(ui->widget_video->layout());
int count = 0;
int row = 0;
int column = 0;
for (int i = 0; i < 64; i++) {
if (i >= 0) {
gridLayout->addWidget(m_videoLabels[i], row, column);
m_videoLabels[i]->setVisible(true);
count++;
column++;
if (column == 3) {
row++;
column = 0;
}
}
if (count == (3 * 3)) {
break;
}
}
}
break;
case 16:
{
QGridLayout *gridLayout = qobject_cast<QGridLayout*>(ui->widget_video->layout());
int count = 0;
int row = 0;
int column = 0;
for (int i = 0; i < 64; i++) {
if (i >= 0) {
gridLayout->addWidget(m_videoLabels[i], row, column);
m_videoLabels[i]->setVisible(true);
count++;
column++;
if (column == 4) {
row++;
column = 0;
}
}
if (count == (4*4)) {
break;
}
}
}
break;
case 25:
{
QGridLayout *gridLayout = qobject_cast<QGridLayout*>(ui->widget_video->layout());
int count = 0;
int row = 0;
int column = 0;
for (int i = 0; i < 64; i++) {
if (i >= 0) {
gridLayout->addWidget(m_videoLabels[i], row, column);
m_videoLabels[i]->setVisible(true);
count++;
column++;
if (column == 5) {
row++;
column = 0;
}
}
if (count == (5*5)) {
break;
}
}
}
break;
case 36:
{
QGridLayout *gridLayout = qobject_cast<QGridLayout*>(ui->widget_video->layout());
int count = 0;
int row = 0;
int column = 0;
for (int i = 0; i < 64; i++) {
if (i >= 0) {
gridLayout->addWidget(m_videoLabels[i], row, column);
m_videoLabels[i]->setVisible(true);
count++;
column++;
if (column == 6) {
row++;
column = 0;
}
}
if (count == (6*6)) {
break;
}
}
}
break;
case 64:
{
QGridLayout *gridLayout = qobject_cast<QGridLayout*>(ui->widget_video->layout());
int count = 0;
int row = 0;
int column = 0;
for (int i = 0; i < 64; i++) {
if (i >= 0) {
gridLayout->addWidget(m_videoLabels[i], row, column);
m_videoLabels[i]->setVisible(true);
count++;
column++;
if (column == 8) {
row++;
column = 0;
}
}
if (count == (8*8)) {
break;
}
}
}
break;
default:
break;
}
}
void MainWindow::on_pushButton_1_clicked()
{
ui->pushButton_1->setChecked(true);
ui->pushButton_4->setChecked(false);
ui->pushButton_6->setChecked(false);
ui->pushButton_8->setChecked(false);
ui->pushButton_9->setChecked(false);
ui->pushButton_16->setChecked(false);
ui->pushButton_25->setChecked(false);
ui->pushButton_36->setChecked(false);
ui->pushButton_64->setChecked(false);
showVideoScreen(1);
}
void MainWindow::on_pushButton_4_clicked()
{
ui->pushButton_1->setChecked(false);
ui->pushButton_4->setChecked(true);
ui->pushButton_6->setChecked(false);
ui->pushButton_8->setChecked(false);
ui->pushButton_9->setChecked(false);
ui->pushButton_16->setChecked(false);
ui->pushButton_25-