Y a-t-il une solution pour incorporer un QLabel dans QStatusBar en utilisant Qt Designer?QLabel incorporation dans QStatusBar à l'aide de Qt Designer
Répondre
Je ne crois pas. Il est cependant assez simple d'en ajouter un par programmation.
Si vous êtes juste vouloir montrer un message, vous pouvez utiliser: statusBar()->showMessage(tr("Message Here"));
, ou bien si vous avez vraiment besoin d'un QLabel sur la barre d'état, vous pourriez faire quelque chose le long des lignes de:
QLabel *label = new QLabel("Message");
statusBar()->addWidget(label);
label
deviendrait un enfant de statusBar()
, et apparaîtrait dans le premier emplacement vide en bas à gauche (addPermanentWidget(label)
l'ajouterait au premier emplacement vide en bas à droite). Si vous placez QLabel label
dans l'en-tête des classes (ou un autre nom de variable), vous pourrez accéder directement à la variable plus tard (en supprimant le type initial QLabel
de la première ligne, bien sûr).
Ce n'est pas possible même si vous voulez éditer manuellement le fichier d'interface utilisateur.
Je pense que c'est un défaut dans QtDesigner –
Pas un défaut mais une fonctionnalité manquante. Malheureusement, QtDesigner n'est pas conçu pour les interfaces utilisateur qui ont une structure à plusieurs niveaux (cela inclut l'ajout d'un QLabel à une barre d'état Q, etc.). – rbaleksandar
Ce n'est pas possible avec Qt Designer. Je résous en créant l'étiquette un dans Qt Designer et plus tard dans le constructeur de mon MainWindows
ajouter cette ligne:
Ui::"class name of my MainWindows"::"name of statusBar Object"->addWidget("Object Name of Label");
Dans ma demande, le nom de classe de mainwindows est MainWindowsForm
, la barre d'état est nommé statusBar
et l'étiquette est nommé informationLabel
. Puis j'ai:
Ui::MainWindowsForm::statusBar->addWidget(informationLabel);
Comment adapter le code pour utiliser un 'Message' traduisible? – Sigur
@Sigur Une raison pour laquelle vous vous sentez comme cela serait considérablement différente de celle d'un autre QLabel? – Kitsune
Désolé. J'essayais d'utiliser 'tr' avec' QLabel' mais sans succès. Je ne sais pas comment utiliser 'QLabel' avec du texte translatable. – Sigur