2016-04-07 5 views
1

Мне нужно автогенерировать некоторые формы пользовательского интерфейса в коде для отображения содержимого сообщения. Я хочу использовать QToolbox с элементом для каждого типа сообщения. Затем я хочу добавить метки и редактировать строки в содержимое каждой вкладки в зависимости от протокола сообщений. Я не могу, по-видимому, программно добавлять элементы виджетов в элемент панели инструментов.Как добавить виджеты в элемент QToolbox

Ниже мой текущий сегмент кода. Рамка ui-> - это просто контейнер для панели инструментов. Позднее буду беспокоиться о макете.

В моем коде я создаю фрейм, а затем некоторые метки с родительским набором в рамку. Затем я добавляю кадр в качестве элемента в панель инструментов.

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

И какая проблема с кодом выше? – Apin

+0

Хороший вопрос. ;>) этикетки не отображаются в форме (в разделе «Test» на панели инструментов). – Mikkie

+1

И этикетка не появляется, потому что вы не устанавливаете текст на этикетке? И еще одно: вам нужно установить макет на фрейм, а не просто создавать ярлык с родительской меткой. – Apin

ответ

1

В ваших виджетах нет видимого элемента; значок или любой текст.

Вы должны установить значок или текст в свой QLabel.

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"); 

попробуйте код.

Смежные вопросы