四个label的处理方法如下:
bool Demo::eventFilter(QObject *obj, QEvent *e)
{
static bool flag = true;
if(obj == ui->label)
{
if(e->type() == QEvent::MouseButtonPress)
{
if(flag)
{
index = 1;//记录第一个label被点击
ui->label->setGeometry(0,0,500,800);
ui->label->setFocus();
ui->label->setStyleSheet("background-color: rgb(44, 255, 139);");
}
else
{
ui->label->setGeometry(0,0,200,200);
}
flag =!flag;
}
}
else if(obj == ui->label2)
{
if(e->type() == QEvent::MouseButtonPress)
{
if(flag)
{
index = 2;//记录第二个label被点击
ui->label2->setGeometry(410,20,500,800);
ui->label->setFocus();
ui->label2->setStyleSheet("background-color: rgb(44, 255, 139);");
}
else
{
ui->label2->setGeometry(410,20,200,200);
}
flag =!flag;
}
}
else if(obj == ui->label3)
{
if(e->type() == QEvent::MouseButtonPress)
{
if(flag)
{
index = 3;//记录第三个label被点击
ui->label3->setGeometry(20,230,500,800);
ui->label3->setFocus();
ui->label3->setStyleSheet("background-color: rgb(44, 255, 139);");
}
else
{
ui->label3->setGeometry(20,230,321,171);
}
flag =!flag;
}
}
else if(obj == ui->label4)
{
if(e->type() == QEvent::MouseButtonPress)
{
if(flag)
{
index = 4;//记录第三个label被点击
ui->label4->setGeometry(410,240,500,800);
ui->label4->setFocus();
ui->label4->setStyleSheet("background-color: rgb(44, 255, 139);");
}
else
{
ui->label4->setGeometry(410,240,321,171);
}
flag =!flag;
}
}
return true;
}
一个“全屏”按钮的处理如下:
void Demo::on_pushButton_pressed() //全屏按钮
{
if(index == 1)
{
ui->label->setGeometry(0,0,500,800);
}
else if(index == 2)
{
ui->label2->setGeometry(410,20,500,800);
}
else if(index == 3)
{
ui->label3->setGeometry(20,230,321,171);
}
else if(index == 4)
{
ui->label4->setGeometry(410,240,321,171);
}
}