ein Array von Widgets->Wie?

Verschiedenes zu Qt
Antworten
bloedi
Beiträge: 26
Registriert: 24. Januar 2007 11:22

ein Array von Widgets->Wie?

Beitrag 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
kuberka
Beiträge: 26
Registriert: 8. Februar 2006 09:17

Beitrag von kuberka »

Zum Beispiel so

QGroupBox *NeutralizeGroup[4];


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

Viel Spass

Torsten
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Dann doch lieber ein QList< QGroupBox* > :D
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
bloedi
Beiträge: 26
Registriert: 24. Januar 2007 11:22

Beitrag 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??
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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...
bloedi
Beiträge: 26
Registriert: 24. Januar 2007 11:22

Beitrag von bloedi »

Danke!

Ich habe jetzt verstanden...
Antworten