2017-09-22 8 views
1

Der folgende Code wird von mir verwendet, um dynamisch eine QLabel und QLineEdit (vertikal) basierend auf einer QStringList (newList) zu generieren!horizontal Ausgerichtete dynamisch erstellte Widgets qt C++

for(int i=0;i<newList.size();i++) 
{ 
     QlineEdit *a=new QLineEdit(); 
     QLabel *b= new QLabel(); 

     ui->verticalLayout->addWidget(a); 
     ui->verticalLayout_2->addWidget(b); 

     b->setText(newList[i]); 
} 

Sowohl die Etiketten und Strich Bearbeitungen erzeugt werden und die Elemente der String-Liste wird in den Etiketten dargestellt! Aber das Problem, das ich Gesicht ist, dass Etikett auf jede Zeile bearbeiten entspricht, nicht horizontal mit dieser Zeile bearbeiten alligned ist! Wie kann ich das korrigieren?

Antwort

0

Sie können LineEdit und Label in einem QFrame platzieren und dann den QFrame in das vertikale Layout einfügen. Oder Sie verwenden ein horizontales Layout für LineEdit und Label und fügen dieses in das vertikale Layout ein.

edit: (nicht getestet und nur schnell schreiben!)

for(int i=0;i<newList.size();i++) 
{ 
     QFrame *f = new QFrame(); 
     QlineEdit *a=new QLineEdit(f); 
     QLabel *b= new QLabel(f); 


     ui->verticalLayout->addWidget(f); 

     b->setText(newList[i]); 
} 

Exampels for different ways in comparison

+0

Thanx paaren es funktioniert –

Verwandte Themen