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();
        }

    程序运行结果:

    

    

  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值