在 QtDesigner 中设置状态栏的文本?

Set text for statusbar in QtDesigner?

默认情况下,如果我在 QtDesigner 中创建类型为 "Main Window" 的新表单,我会在其中获得三个元素:centralwidgetmenubar - 这在预览中不可见(Ctrl-R),除非添加了实际的菜单条目;和 statusbar.

问题是 - 默认情况下,状态栏的背景颜色与其余部分相同,因此,当我进行预览时,我无法真正感知状态栏是否存在:

基本上,我唯一能看到的是 "sizeGrip",这并不总是很容易看到 - 所以我想在状态栏中也显示一个 text/message。

现在,我知道 QStatusBar Class 的 API 已 .showMessage 用于在状态栏中显示文本 - 但是,我在 QtDesigner 中找不到任何类似的字段?!

那么 - 是否可以在 QtDesigner 的状态栏中设置 default/placeholder 文本 - 如果可以,如何设置?

不,你不能。

在 QtDesigner 中,您只能设置小部件的属性(参见 Q_PROPERTY),而不能调用方法。这些属性列在文档的 Properties 部分,而 QStatusBar 只有 sizeGripEnabled (以及从 QWidget 继承的属性)

但实际问题是什么?预览状态栏看不清楚?预览应该有助于检查 singal/slots 和布局约束,而不是作为一个功能齐全的应用程序。

还有一些因素会影响最终应用程序的实际外观,无法在设计器预览中检查,例如动态样式表或自定义样式。


如果您想检查您的 window 与状态栏中的文本的外观,您将需要制作一个模拟应用程序来执行此操作:显示一些文本

#include <QtCore>
#include <QtWidgets>
#include "ui_mainwindow.h"

int main(int argc, char **argv) {
    QApplication app(argc, argv);
    Ui::MainWindow ui;
    QMainWindow wnd;
    ui.setupUi(&wnd);
    wnd.show();
    ui.statusbar->showMessage("Hello World!");
    return app.exec();
}