2010-04-26 3 views

ответ

26

Я так не верю. Однако довольно просто добавить программно.

Если вы просто хотите, чтобы показать сообщение, вы можете использовать: statusBar()->showMessage(tr("Message Here"));, или в качестве альтернативы, если вы действительно нуждались в QLabel в строке состояния, вы могли бы сделать что-то вдоль линий:

QLabel *label = new QLabel("Message"); 
statusBar()->addWidget(label); 

label станет ребенком statusBar() и появится в первом пустом месте слева внизу (addPermanentWidget(label) добавит его в первое пустое место справа). Если вы поместите QLabel label в заголовок классов (или другое имя var), вы сможете получить доступ к переменной непосредственно позже (конечно, с первоначальной версией QLabel).

+0

Как адаптировать код для использования переведенного 'сообщения'? – Sigur

+0

@Sigur Любая причина, по которой вы чувствуете себя подобной, будет существенно отличаться от того, чтобы иметь дело с любым другим QLabel? – Kitsune

+0

Извините. Я пытался использовать 'tr' с' QLabel', но не имел успеха. Я не знаю, как использовать QLabel с переводным текстом. – Sigur

5

Это невозможно, даже если вы вручную отредактируете файл UI.

+5

Я думаю, что это дефект в QtDesigner –

+0

Не недостаток, а недостающая особенность. К сожалению, QtDesigner не предназначен для пользовательских интерфейсов, которые имеют многоуровневую структуру (включая добавление QLabel в QStatusbar и т. Д.). – rbaleksandar

5

Это невозможно с Qt Designer. Я решить ее путем создания ярлыка А в Qt Designer, а затем в конструктор из моих MainWindows добавить эту строку:

Ui::"class name of my MainWindows"::"name of statusBar Object"->addWidget("Object Name of Label"); 

В моем приложении, имя класса mainwindows является MainWindowsForm, строка состояния называется statusBar и метка с именем informationLabel. Затем у меня есть:

Ui::MainWindowsForm::statusBar->addWidget(informationLabel); 

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

  • Нет связанных вопросов^_^