使用Qt Designer在QStatusBar中嵌入QLabel

25

有没有办法在Qt Designer中嵌入QLabel到QStatusBar中?

3个回答

28

我不这么认为。但是通过编程添加非常简单。

如果你只是想显示一个消息,可以使用:statusBar()->showMessage(tr("在此处输入消息"));,或者如果你真的需要在状态栏上使用QLabel,你可以尝试这样做:

QLabel *label = new QLabel("Message");
statusBar()->addWidget(label);

label将成为statusBar()的一个子项,并出现在从左下方第一个空位置(addPermanentWidget(label)将把它添加到从右下方第一个空位置)。如果你在类头(或其他变量名称)中放置QLabel label,以后就可以直接访问该变量(当然需要删除第一行中的初始QLabel类型声明)。


如何调整代码以使用可翻译的“消息”? - Sigur
@Sigur 你有什么理由认为这会与处理任何其他QLabel显著不同吗? - Kitsune
抱歉,我尝试使用trQLabel,但没有成功。我不知道如何使用可翻译文本的QLabel - Sigur

6

在Qt Designer中无法实现此功能。我通过在Qt Designer中创建一个标签,并在MainWindows的构造函数中添加以下代码来解决这个问题:

Ui::"class name of my MainWindows"::"name of statusBar Object"->addWidget("Object Name of Label");

在我的应用程序中,主窗口的类名为MainWindowsForm,状态栏被命名为statusBar,标签被命名为informationLabel。然后我有:

Ui::MainWindowsForm::statusBar->addWidget(informationLabel);

5

即使您手动编辑UI文件,也无法实现。


5
我认为这是QtDesigner的一个缺陷。 - Mohammad Sheykholeslam
不是一个缺陷而是一个缺失的功能。可悲的是,QtDesigner并不适用于具有多级结构的用户界面(包括将QLabel添加到QStatusbar等)。 - rbaleksandar

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