【问题标题】:qt status bar center align?qt状态栏居中对齐?
【发布时间】:2010-12-09 22:45:58
【问题描述】:

如何将 QStatusBar 中的文本居中对齐? 默认情况下它总是左对齐。

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

【问题讨论】:

    标签: qt alignment qstatusbar


    【解决方案1】:

    一个QStatusBar这里有三个值得注意的功能:

    addPermanentWidget - 右对齐放置一个小部件

    addWidget - 放置一个左对齐的小部件,可以被状态消息遮挡

    showMessage - 显示状态消息

    这些是状态栏的公认标准。虽然您可以破解以获得您正在寻找的东西,但我建议您重新考虑您的需求。也许您的 QLabel 应该与 addPermanentWidget 一起放置?

    查看文档了解更多信息:http://doc.qt.io/qt-5/qstatusbar.html

    【讨论】:

    • 好的。但是如果我使用 addPermanenetWidget,如何添加超时?
    • 使用 QTimer。在 qlabel 上显示消息时以单次启动它,并创建简单的函数来在超时时清除标签文本。
    • @ZolaKt:你什么意思?您是否尝试在 QLabel 中显示临时文本?为什么不按预期使用 showMessage 函数?
    • 是的,我正在尝试显示临时文本。我正在使用 showMessage 功能。我只是希望文本居中对齐,而不是默认左对齐
    • 如果您担心它会覆盖其他小部件,那么这些小部件可能应该与 addPermanentWidget 一起放置。如果你只是为了它而想要它在中间......呃。并且不要期望使用 showMessage。
    【解决方案2】:

    如果你只想让消息本身在整个状态栏中居中,可以这样:

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

    这个附加参数 1 将您的标签拉伸到状态栏的完整宽度。

    问候

    【讨论】:

      猜你喜欢
      • 2020-02-21
      • 2017-12-17
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-06
      • 2012-09-03
      • 1970-01-01
      相关资源
      最近更新 更多