Qt5之控件的隐藏显示与移动

本例程实现控件的隐藏、显示,以及控件的移动。

对于控件的信号与槽等基础技术在这里不再累赘,直接进入关键技术点:

本例程中,当按下按钮时,列表框上移,按钮与列表框之间的控件隐藏;当再次按下按钮时,,列表框下移,按钮与列表框之间的控件显示。

一、记录要移动控件的前后位置

声明

/** @brief 列表控件上移位置矩形*/QRect listMatchResultUpRT;/** @brief 列表控件下移位置矩形*/QRect listMatchResultDnRT;

定义

void featureMatchQtDlgI::initAdvancedControlRT(){listMatchResultUpRT = ui->labelInitSamplePro->geometry();listMatchResultDnRT = ui->listMatchResult->geometry();listMatchResultUpRT.setWidth(listMatchResultDnRT.width());listMatchResultUpRT.setHeight(listMatchResultDnRT.height());} 二、移动隐藏与移动显示函数

移动隐藏

void featureMatchQtDlgI::hideAdvancedControl(){ui->labelInitSamplePro->setVisible(false);ui->labelContrastThreshold->setVisible(false);ui->labelMatchThreshold->setVisible(false);ui->labelMaxMatchNumber->setVisible(false);ui->combInitSampPro->setVisible(false);ui->spinContrastThreshold->setVisible(false);ui->spinMatchThreshold->setVisible(false);ui->spinMaxMatchNumber->setVisible(false);ui->listMatchResult->setGeometry(listMatchResultUpRT);}

移动显示

void featureMatchQtDlgI::showAdvancedControl(){ui->listMatchResult->setGeometry(listMatchResultDnRT);ui->labelInitSamplePro->setVisible(true);ui->labelContrastThreshold->setVisible(true);ui->labelMatchThreshold->setVisible(true);ui->labelMaxMatchNumber->setVisible(true);ui->combInitSampPro->setVisible(true);ui->spinContrastThreshold->setVisible(true);ui->spinMatchThreshold->setVisible(true);ui->spinMaxMatchNumber->setVisible(true);}

三、按钮槽函数

static bool isOpenAdvancedSetting = false;if(isOpenAdvancedSetting){isOpenAdvancedSetting = false;hideAdvancedControl();}else{isOpenAdvancedSetting = true;showAdvancedControl();}

程序运行结果:

只要有信心,人永远不会挫败

Qt5之控件的隐藏显示与移动

相关文章:

你感兴趣的文章:

标签云: