2010-04-26 22 views

Respuesta

26

No lo creo. Sin embargo, es bastante simple agregar uno programáticamente.

Si acaba de querer mostrar un mensaje, se puede utilizar: statusBar()->showMessage(tr("Message Here"));, o, alternativamente, si realmente necesitaba un QLabel en la barra de estado, se puede hacer algo en la línea de:

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

label se convertiría en un elemento secundario de statusBar(), y aparecería en el primer lugar vacío de la parte inferior izquierda (addPermanentWidget(label) lo agregaría al primer lugar vacío de la parte inferior derecha). Si coloca QLabel label en el encabezado de las clases (u otro nombre var), podrá acceder a la variable directamente más adelante (eliminando el tipo inicial QLabel de la primera línea, por supuesto).

+0

¿Cómo adaptar el código para usar un 'Mensaje 'traducible? – Sigur

+0

@Sigur ¿Alguna razón por la que siente que esto sería significativamente diferente de tratar con cualquier otra QLabel? – Kitsune

+0

Lo siento. Estaba tratando de usar 'tr' con' QLabel' pero no tuve éxito. No sé cómo usar 'QLabel' con texto traducible. – Sigur

5

No es posible incluso si editara manualmente el archivo UI.

+5

Creo que es un defecto en QtDesigner –

+0

No es un defecto sino una característica que falta. Lamentablemente, QtDesigner no está diseñado para UI, que tienen una estructura multinivel (esto incluye agregar QLabel a QStatusbar, etc.). – rbaleksandar

5

No es posible con Qt Designer. Resuelvo mediante la creación de la etiqueta A en Qt Designer y más tarde en el constructor de mi MainWindows añadir esta línea:

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

En mi solicitud, el nombre de la clase de mainwindows es MainWindowsForm, la barra de estado se llama statusBar y la etiqueta es llamado informationLabel. Luego tengo:

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