2010-04-26 140 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);