może to głupie pytanie, ale jestem nowy w C++ i Qt. Bardzo przepraszam za tę niedogodność.Projektant Qt: tworzenie tablicy widżetów
w Qt Designer tworzę wiele etykiet (na przykład):
my_label1
my_label2
my_label3
...
my_label n
Następnie, jeśli chcę, aby je ukryć Mam to:
ui->my_label1->hide();
ui->my_label2->hide();
ui->my_label3->hide();
...
ui->my_labeln->hide();
Jednak chciałbym zdefiniować etykiety takie jak
my_label[n]
tak to byłbym w stanie to zrobić:
for(i=0;i<n;i++)
{
ui->my_label[n]->hide();
}
czytałem, że można zdefiniować widget jak:
QLabel* my_label[5];
ale czy jest jakiś sposób, żeby zrobić to samo z Qt Designer?
Z góry dzięki!
Edit:
Wreszcie postanowiłem zrobić bezpośredniego przypisania:
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;
Następnie można zrobić na przykład:
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...
potem byłem w stanie wykonywać iteracje. Wierzę, że nie jest to najczystszy sposób na zrobienie tego, ale biorąc pod uwagę moją podstawową wiedzę na temat Qt jest dla mnie w porządku.
Dziękuję bardzo za odpowiedzi! To wspaniała strona z świetnymi ludźmi.
Arnold: Dziękuję za odpowiedź! ale biorąc pod uwagę moją podstawową wiedzę Qt, w końcu wykonałem bezpośrednie zadanie. Poza tym musiałem zrobić coś więcej, niż tylko ukryć. W każdym razie naprawdę doceniam twoją pomoc. – Fracu
Uznałem, że ukrywanie nie jest twoim jedynym celem :) Możesz umieścić własną odpowiedź i zaakceptować ją. Dzięki temu nie będą wyświetlane odpowiedzi na pytania, na które nie ma odpowiedzi. –
Po prostu próbowałem, ale skoro mam mniej niż 100 punktów reputacji, muszę poczekać jeszcze trzy godziny. Jeszcze raz dziękuję! – Fracu