Seite 1 von 1

ein Array von Widgets->Wie?

Verfasst: 23. Februar 2007 10:15
von bloedi
ich erstelle ein GUI mit dem Designer: QT4.2.2/VS.NET2003
8 GroupBoxes für 8 Messkanäle
jedes GroupBox hat 8 RadioButtons für 8 Pins

Der user wählt auf welchen Pin ein Kanal gemessen werden sollte...

Ich würde gerne diese 8 RadioButtons und diese 8 GroupBoxes als array verwalten und dann könnte ich so eine Verbindung machen:
Kanal2->Pin6
Kanal4->Pin7

Ich habe über QSignalMapper gelesen aber ich weiß nicht , wie das im meinen Fall anzuwenden sei...

DANKE für Eure Hilfe

Verfasst: 23. Februar 2007 13:06
von kuberka
Zum Beispiel so

QGroupBox *NeutralizeGroup[4];


NeutralizeGroup = new QGroupBox(RingTab);
NeutralizeGroup->setFont(font);

Viel Spass

Torsten

Verfasst: 23. Februar 2007 13:15
von Christian81
Dann doch lieber ein QList< QGroupBox* > :D

Verfasst: 23. Februar 2007 14:01
von bloedi
QList< QGroupBox* > ist eine Idee...

ABER ich habe keine Ahnung , wie ich das programmieren soll

gibt es irgendwo ein Beispiel in DOKU????

was ist mit QHash<>
oder mit QSignalMapper??

Verfasst: 23. Februar 2007 18:27
von upsala

Code: Alles auswählen

QWidget *wdg=new QWidget(0);
QHBoxLayout *hLayout=new QHBoxLayout(wdg);
wdg->setLayout(hLayout);	
QList<QButtonGroup*> groups;
for (int k=0; k<8; k++) {
  QGroupBox *group=new QGroupBox(QString("Kanal %1").arg(k), wdg);
  QButtonGroup *bGroup=new QButtonGroup(wdg);
  groups.append(bGroup);
  hLayout->addWidget(group);
  QVBoxLayout *layout=new QVBoxLayout(group);
  group->setLayout(layout);
  for (int i=0; i<8; i++) {
    QRadioButton *button=new QRadioButton(QString("Pin %1").arg(i+1), group);
    layout->addWidget(button);
    bGroup->addButton(button, k*8+i);			
  }
  connect(bGroup, SIGNAL(clicked(int)), this, SLOT(buttonClicked(int)));
}
Rest ist Hausaufgabe...

Verfasst: 28. Februar 2007 12:38
von bloedi
Danke!

Ich habe jetzt verstanden...