Comment puis-je centrer le texte dans QStatusBar? Par défaut, il est toujours aligné à gauche. Je sais que je peux ajouter un QLabel et définir l'alignement, mais je veux utiliser la méthode du texte brut et .showMessage (QString, int), afin que je puisse ajouter la valeur du délai d'expiration.qt centre de la barre d'état aligné?
Répondre
Un QStatusBar a trois fonctions de noter ici:
addPermanentWidget
- Places un droit widget aligné
addWidget
- Place gauche widget aligné qui peut être obscurci par les messages d'état
showMessage
- Affiche message d'état
Ces normes sont bien établies pour les barres d'état. Tandis que vous pourriez bidouiller loin pour obtenir ce que vous recherchez, je vous suggérerais de reconsidérer vos besoins. Peut-être que votre QLabel devrait être placé avec addPermanentWidget à la place?
Jetez un oeil à la documentation pour plus d'informations: http://doc.qt.io/qt-5/qstatusbar.html
Si vous voulez juste pour centrer le message lui-même dans l'ensemble statusBar, se présenter comme suit:
QLabel* statusLabel = new QLabel("Your Message");
statusBar()->addWidget(statusLabel,1);
Ce paramètre supplémentaire 1 étend votre Étiquette à la largeur complète de la barre d'état.
Salutations
ok. mais comment puis-je ajouter le timeout si j'utilise addPermanenetWidget? – ZolaKt
Avec QTimer. démarrez-le avec singleshot lorsque le message affiché sur qlabel, et créer simplement une fonction qui nettoie le texte de l'étiquette sur le délai d'attente. – Raiv
@ZolaKt: Que voulez-vous dire? Essayez-vous d'afficher le texte temporaire dans un QLabel? Pourquoi ne pas simplement utiliser la fonction showMessage comme elle était destinée? – OliJG