layout neu schreiben ... aber wie?
Verfasst: 20. April 2011 17:30
Alloah ich bastle grad am QTkboard herum um mir ein Umschaltbares KeyBoard zu bauen ...
die button konfiguration lade ich aus den jeweiligen xml datein
jedoch bekomme ich es nicht hin das er die Button_widgets neu schreibt ...
hier meine funktionen zum löschen anzeigen
hat jemand einen tip?
die button konfiguration lade ich aus den jeweiligen xml datein
jedoch bekomme ich es nicht hin das er die Button_widgets neu schreibt ...
hier meine funktionen zum löschen anzeigen
Code: Alles auswählen
void mainForm::clearLayout(QLayout *l) {
int z = 0;
QLayoutItem *item;
while((item = l->itemAt(z)) != 0) {
/*if (item->layout()) {
clearLayout((QLayout *)item->layout());
}*/
delete item->widget();
z++;
}
}
void mainForm::displayboard()
{
int buttonHeight = 20;
int buttonwidth = 20;
//int bigButtonWidth = 65;
int specialButtonWidth = 30;
layKeyb = new QVBoxLayout();
layKeyb->setSpacing(1);
int i ;
QMyButton *bt;
layFirstRow = new QHBoxLayout();
layFirstRow->setSpacing(1);
layRow2 = new QHBoxLayout();
layRow2->setSpacing(1);
layRow3 = new QHBoxLayout();
layRow3->setSpacing(1);
layRow4 = new QHBoxLayout();
layRow4->setSpacing(1);
layRow5 = new QHBoxLayout();
layRow5->setSpacing(1);
layKeyb->addLayout(layFirstRow);
layKeyb->addLayout(layRow2);
layKeyb->addLayout(layRow3);
layKeyb->addLayout(layRow4);
layKeyb->addLayout(layRow5);
if( switchboard == 0 ) {
clearLayout(layFirstRow);
clearLayout(layRow2);
clearLayout(layRow3);
clearLayout(layRow4);
for(i = 0; i < 11; i++) {
bt = new QMyButton(this);
bt->setMinimumSize(QSize( specialButtonWidth, buttonHeight));
// bt->setMaximumSize(QSize( specialButtonWidth, buttonHeight));
layFirstRow->addWidget(bt);
buttons.append(bt);
bt->setObjectName(QString::number(i));
}
for(; i < 21; i++) {
bt = new QMyButton(this);
bt->setMinimumSize(QSize( buttonwidth, buttonHeight));
bt->setObjectName(QString::number(i));
layRow2->addWidget(bt);
buttons.append(bt);
}
for(; i < 31; i++) {
bt = new QMyButton(this);
bt->setMinimumSize(QSize( buttonwidth, buttonHeight));
bt->setObjectName(QString::number(i));
layRow3->addWidget(bt);
buttons.append(bt);
}
for(; i < 38; i++) {
bt = new QMyButton(this);
bt->setMinimumSize(QSize( buttonwidth, buttonHeight));
bt->setObjectName(QString::number(i));
layRow4->addWidget(bt);
buttons.append(bt);
}
i++;
kbName = shareDir + "/11.xml";
}
if (switchboard == 1) {
clearLayout(layFirstRow);
clearLayout(layRow2);
clearLayout(layRow3);
clearLayout(layRow4);
for(i = 0; i < 10; i++) {
bt = new QMyButton(this);
bt->setMinimumSize(QSize( specialButtonWidth, buttonHeight));
// bt->setMaximumSize(QSize( specialButtonWidth, buttonHeight));
layFirstRow->addWidget(bt);
buttons.append(bt);
bt->setObjectName(QString::number(i));
}
for(; i < 20; i++) {
bt = new QMyButton(this);
bt->setMinimumSize(QSize( buttonwidth, buttonHeight));
bt->setObjectName(QString::number(i));
layRow2->addWidget(bt);
buttons.append(bt);
}
for(; i < 27; i++) {
bt = new QMyButton(this);
bt->setMinimumSize(QSize( buttonwidth, buttonHeight));
bt->setObjectName(QString::number(i));
layRow3->addWidget(bt);
buttons.append(bt);
}
for(; i < 34; i++) {
bt = new QMyButton(this);
bt->setMinimumSize(QSize( buttonwidth, buttonHeight));
bt->setObjectName(QString::number(i));
layRow4->addWidget(bt);
buttons.append(bt);
}
i++;
layKeyb->update();
kbName = shareDir + "/12.xml";
}
if (switchboard == 2) {
clearLayout(layFirstRow);
clearLayout(layRow2);
clearLayout(layRow3);
clearLayout(layRow4);
for(i = 0; i < 7; i++) {
bt = new QMyButton(this);
bt->setMinimumSize(QSize( specialButtonWidth, buttonHeight));
// bt->setMaximumSize(QSize( specialButtonWidth, buttonHeight));
layFirstRow->addWidget(bt);
buttons.append(bt);
bt->setObjectName(QString::number(i));
}
for(; i < 14; i++) {
bt = new QMyButton(this);
bt->setMinimumSize(QSize( buttonwidth, buttonHeight));
bt->setObjectName(QString::number(i));
layRow2->addWidget(bt);
buttons.append(bt);
}
for(; i < 18; i++) {
bt = new QMyButton(this);
bt->setMinimumSize(QSize( buttonwidth, buttonHeight));
bt->setObjectName(QString::number(i));
layRow3->addWidget(bt);
buttons.append(bt);
}
for(; i < 26; i++) {
bt = new QMyButton(this);
bt->setMinimumSize(QSize( buttonwidth, buttonHeight));
bt->setObjectName(QString::number(i));
layRow4->addWidget(bt);
buttons.append(bt);
}
i++;
kbName = shareDir + "/13.xml";
}
if (switchboard == 3) {
clearLayout(layFirstRow);
clearLayout(layRow2);
clearLayout(layRow3);
clearLayout(layRow4);
for(i = 0; i < 5; i++) {
bt = new QMyButton(this);
bt->setMinimumSize(QSize( specialButtonWidth, buttonHeight));
// bt->setMaximumSize(QSize( specialButtonWidth, buttonHeight));
layFirstRow->addWidget(bt);
buttons.append(bt);
bt->setObjectName(QString::number(i));
}
for(; i < 10; i++) {
bt = new QMyButton(this);
bt->setMinimumSize(QSize( buttonwidth, buttonHeight));
bt->setObjectName(QString::number(i));
layRow2->addWidget(bt);
buttons.append(bt);
}
for(; i < 15; i++) {
bt = new QMyButton(this);
bt->setMinimumSize(QSize( buttonwidth, buttonHeight));
bt->setObjectName(QString::number(i));
layRow3->addWidget(bt);
buttons.append(bt);
}
for(; i < 20; i++) {
bt = new QMyButton(this);
bt->setMinimumSize(QSize( buttonwidth, buttonHeight));
bt->setObjectName(QString::number(i));
layRow4->addWidget(bt);
buttons.append(bt);
}
i++;
kbName = shareDir + "/14.xml";
}
bt = new QMyButton(this); //switch the board
bt->setMinimumSize(QSize( buttonwidth, buttonHeight));
bt->setObjectName(QString::number(i));
bt->setText("Switch the Board");
layRow5->addWidget(bt);
buttons.append(bt);
//update mainForm
if(mainFormLayout->isEmpty()){
mainFormLayout->addLayout(layKeyb);
mainFormLayout->setSpacing(1);}
else {
mainFormLayout->update();
}