2010-04-26 97 views

回答

26

我不这么认为。但是,以编程方式添加一个相当简单。

如果你只是想显示一个消息,你可以使用:statusBar()->showMessage(tr("Message Here"));,或者如果你真的需要一个QLabel状态栏上,你可以做线沿线的东西:

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

label将成为statusBar()的孩子,并出现在左下角的第一个空白处(addPermanentWidget(label)会将其添加到右下角的第一个空白处)。如果将QLabel label放置在类头(或其他var名称)中,则可以稍后直接访问该变量(当然,从第一行中删除最初的QLabel类型)。

+0

如何调整代码以使用可翻译的“消息”? – Sigur 2016-11-25 00:24:00

+0

@Sigur任何你觉得这样的理由与处理任何其他QLabel都有很大的不同? – Kitsune 2016-12-22 16:14:40

+0

对不起。我试图用'QLabel'使用'tr',但没有成功。我不知道如何使用带有可转换文本的'QLabel'。 – Sigur 2016-12-22 18:21:40

5

即使您手动编辑UI文件也不可能。

+5

我认为这是QtDesigner的一个缺陷 – 2010-05-03 07:34:22

+0

不是一个缺陷,而是一个缺失的功能。可悲的是,QtDesigner并不适用于具有多级结构的UI(这包括将QLabel添加到QStatusbar等)。 – rbaleksandar 2015-06-15 10:40:49

5

这是不可能与Qt设计器。我在Qt设计师创建标签和后来在我的构造方法解决这个问题MainWindows加入这一行:

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

在我的应用程序,mainwindows的类名是MainWindowsForm,状态栏被命名为statusBar和标签名为informationLabel。然后,我有:

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