qt 批量隐藏控件 隐藏按钮

前言

在软件开发过程中增加了很多辅助的控件,贸然删除可能会出现意想不到的错误,希望将其隐藏,不出现在界面上。
qt隐藏控件没有MFC那么方便,需要使用QWidget类的setVisible方法,使用代码方式实现,不能从ui设计界面进行设置(如果有一定要私信我哈)。

实现方式

单独将某一个控件(例如其objectName = testName),直接在主视窗类的成员函数中使用如下语句即可。

ui->testName->setVisible(false);

当需要隐藏的控件较多时,每一个控件都写一行代码太过繁琐。注意到这些控件都是QWidget类的子类,且setVisible是QWidget类的方法,所以将这些控件的指针都变成QWidget对象指针,再调用setVisible即可实现批量隐藏控件。
例如我想隐藏以下蓝色框内所有控件,包括三种类型控件。
qt 批量隐藏控件 隐藏按钮_第1张图片
在主视窗构造函数中隐藏这些控件,这样在我们看到界面之前这些控件就被隐藏了。批量隐藏的技巧在于将所有需要隐藏的控件的指针都转换为QWidget指针

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    {
        QWidget* hide[] = {ui->radioButton, ui->radioButton_2,
                           ui->radioButton_3, ui->radioButton_4,
                           ui->label_2, ui->pBtnGit};
        for(int i = 0; i < sizeof(hide)/sizeof(QWidget*); i++){
            hide[i]->setVisible(false);
        }
    }
}

运行效果如下:
qt 批量隐藏控件 隐藏按钮_第2张图片

你可能感兴趣的:(qt开发,qt)