Qt状态栏如何居中对齐?

5

如何在QStatusBar中使文本居中对齐?默认情况下,文本总是左对齐。

我知道可以添加一个QLabel并设置对齐方式,但我想使用纯文本和.showMessage(QString, int)方法,这样我就可以添加超时值。

2个回答

8
一个 QStatusBar 有三个需要注意的函数:
- addPermanentWidget - 将一个小部件放在右侧 - addWidget - 将一个小部件放在左侧,但可能被状态消息遮挡 - showMessage - 显示状态消息
这些是状态栏的常见标准。虽然您可以通过一些方法来获得您想要的效果,但我建议您重新考虑您的需求。也许您的 QLabel 应该使用 addPermanentWidget 来放置?
更多信息请参阅文档:http://doc.qt.io/qt-5/qstatusbar.html

好的。但是如果我使用addPermanentWidget,如何添加超时? - ZolaKt
1
使用QTimer,在QLabel上显示消息时启动它,并创建一个简单的函数,在超时时清除标签文本。 - Raiv
@ZolaKt:你的意思是什么?你想在QLabel中显示临时文本吗?为什么不直接使用showMessage函数呢?它本来就是用来这样做的。 - OliJG
是的,我正在尝试显示临时文本。我正在使用showMessage函数。我希望文本居中对齐,而不是默认的左对齐。 - ZolaKt
如果您的担忧是它会覆盖其他小部件,那么这些小部件应该放置在addPermanentWidget中。如果您只是为了好玩而将其放在中间...呃。并且不要指望使用showMessage。 - OliJG

6

如果你只是想让消息在整个状态栏中居中显示,可以按照如下方式操作:

QLabel* statusLabel = new QLabel("Your Message");
statusBar()->addWidget(statusLabel,1);

这个额外的参数1可以将您的标签拉伸到状态栏的完整宽度。

问候


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接