2016-04-07 4 views
1

Ich muss einige UI-Formulare in Code automatisch generieren, um Nachrichteninhalte anzuzeigen. Ich möchte QToolbox mit einem Element für jeden Nachrichtentyp verwenden. Ich möchte dann je nach Nachrichtenprotokoll dem Inhalt jeder Registerkarte Bezeichnungen und Zeilenbearbeitungen hinzufügen. Ich kann nicht scheinen, Widget-Elemente dem Toolboxelement programmatisch hinzuzufügen.Wie Widgets zu QToolbox Element hinzufügen

Unten ist mein derzeitiges Codesegment. Der ui-> frame ist nur ein Container für die Toolbox. Ich mache mir später Gedanken über das Layout.

In meinem Code, ich erstelle einen Rahmen und dann einige Etiketten mit übergeordneten auf den Rahmen gesetzt. Dann füge ich den Rahmen als ein Element der Toolbox hinzu.

QToolBox *qtbMainToolbox = new QToolBox(ui->frame);; 
qtbMainToolbox->setGeometry(0,0,2000,900); 
QFrame *frm1 = new QFrame; 
QLabel *lbl1 = new QLabel(frm1); 
QLabel *lbl2 = new QLabel(frm1); 
QLabel *lbl3 = new QLabel(frm1); 
QLabel *lbl4 = new QLabel(frm1); 
iRetVal - qtbMainToolbox->addItem(frm1 ,"Test"); 
+0

Und was ist das Problem des obigen Codes? – Apin

+0

Gute Frage. ;>) die Beschriftungen erscheinen nicht auf dem Formular (im "Test" -Teil des Toolbox-Rahmens). – Mikkie

+1

Und das Etikett erscheint nicht, weil Sie keinen Text auf dem Etikett setzen? Und noch etwas müssen Sie das Layout auf Frame festlegen, anstatt nur Etikett mit übergeordneten Label erstellen. – Apin

Antwort

1

Es gibt kein sichtbares Element in Ihren Widgets; Symbol oder irgendein Text.

Sie müssen Symbol oder Text zu Ihrem QLabel setzen.

QToolBox *qtbMainToolbox = new QToolBox(ui->frame);; 
qtbMainToolbox->setGeometry(0,0,2000,900); 
QFrame *frm1 = new QFrame; 
QLabel *lbl1 = new QLabel("Hello World",frm1); 
iRetVal - qtbMainToolbox->addItem(frm1 ,"Test"); 

versuchen Sie oben genannten Code.