Qt Designer:创建小部件数组

Fra*_*acu 7 arrays qt widget qt-designer

也许这是一个愚蠢的问题,但我是C++和Qt的新手.很抱歉给您带来不便.

在Qt Designer中我创建了多个标签(例如):

my_label1
my_label2
my_label3
...
my_label n
Run Code Online (Sandbox Code Playgroud)

然后,如果我想隐藏它们,我会这样做:

ui->my_label1->hide();
ui->my_label2->hide();
ui->my_label3->hide();
...
ui->my_labeln->hide();
Run Code Online (Sandbox Code Playgroud)

但是我想定义像这样的标签

my_label[n]
Run Code Online (Sandbox Code Playgroud)

那么我就能做到这一点:

for(i=0;i<n;i++)
    {
    ui->my_label[n]->hide();
    }
Run Code Online (Sandbox Code Playgroud)

我读到我可以定义小部件,如:

QLabel* my_label[5];
Run Code Online (Sandbox Code Playgroud)

但有没有办法从Qt Designer做同样的事情?

提前致谢!

编辑:

最后我决定直接分配:

QLabel* my_label_array[5];
my_label_array[0] = ui->my_label1;
my_label_array[1] = ui->my_label2;
my_label_array[2] = ui->my_label3;
my_label_array[3] = ui->my_label4;
my_label_array[4] = ui->my_label5;
Run Code Online (Sandbox Code Playgroud)

然后我可以这样做:

for(idx=0;idx<6;idx++) my_label_array[idx]->show();
for(idx=0;idx<6;idx++) my_label_array[idx]->hide();
for(idx=0;idx<6;idx++) my_label_array[idx]->setEnabled(1);
for(idx=0;idx<6;idx++) my_label_array[idx]->setDisabled(1);
etc...
Run Code Online (Sandbox Code Playgroud)

然后我能够执行迭代.我相信这不是最干净的方法,但鉴于我对Qt的基本知识对我来说没问题.

非常感谢您的回答!这是一个伟大的网站与伟大的人.

Fra*_*acu 7

最后我决定直接赋值:

QLabel* my_label_array[5];
my_label_array[0] = ui->my_label1;
my_label_array[1] = ui->my_label2;
my_label_array[2] = ui->my_label3;
my_label_array[3] = ui->my_label4;
my_label_array[4] = ui->my_label5;
Run Code Online (Sandbox Code Playgroud)

然后我可以这样做:

for(idx=0;idx<6;idx++) my_label_array[idx]->show();
for(idx=0;idx<6;idx++) my_label_array[idx]->hide();
for(idx=0;idx<6;idx++) my_label_array[idx]->setEnabled(1);
for(idx=0;idx<6;idx++) my_label_array[idx]->setDisabled(1);
etc...
Run Code Online (Sandbox Code Playgroud)

然后我就能够执行迭代。我相信这不是最干净的方法,但考虑到我对 Qt 的基本了解,这对我来说是可以的。

非常感谢您的解答和支持!这是一个很棒的网站,有很棒的人。