Есть ли какое-нибудь решение для внедрения QLabel в QStatusBar с помощью Qt Designer?Встраивание QLabel в QStatusBar с использованием Qt Designer
ответ
Я так не верю. Однако довольно просто добавить программно.
Если вы просто хотите, чтобы показать сообщение, вы можете использовать: statusBar()->showMessage(tr("Message Here"));
, или в качестве альтернативы, если вы действительно нуждались в QLabel в строке состояния, вы могли бы сделать что-то вдоль линий:
QLabel *label = new QLabel("Message");
statusBar()->addWidget(label);
label
станет ребенком statusBar()
и появится в первом пустом месте слева внизу (addPermanentWidget(label)
добавит его в первое пустое место справа). Если вы поместите QLabel label
в заголовок классов (или другое имя var), вы сможете получить доступ к переменной непосредственно позже (конечно, с первоначальной версией QLabel
).
Это невозможно, даже если вы вручную отредактируете файл UI.
Я думаю, что это дефект в QtDesigner –
Не недостаток, а недостающая особенность. К сожалению, QtDesigner не предназначен для пользовательских интерфейсов, которые имеют многоуровневую структуру (включая добавление QLabel в QStatusbar и т. Д.). – rbaleksandar
Это невозможно с 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);
Как адаптировать код для использования переведенного 'сообщения'? – Sigur
@Sigur Любая причина, по которой вы чувствуете себя подобной, будет существенно отличаться от того, чтобы иметь дело с любым другим QLabel? – Kitsune
Извините. Я пытался использовать 'tr' с' QLabel', но не имел успеха. Я не знаю, как использовать QLabel с переводным текстом. – Sigur