2010-04-26 47 views

Trả lời

26

Tôi không tin như vậy. Nó khá đơn giản để thêm một chương trình, mặc dù.

Nếu bạn chỉ muốn hiển thị một tin nhắn, bạn có thể sử dụng: statusBar()->showMessage(tr("Message Here"));, hoặc cách khác nếu bạn thực sự cần một người QLabel trên thanh trạng thái, bạn có thể làm một cái gì đó dọc theo dòng:

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

label sẽ trở thành con của statusBar() và xuất hiện ở vị trí trống đầu tiên từ dưới cùng bên trái (addPermanentWidget(label) sẽ thêm nó vào vị trí trống đầu tiên từ dưới cùng bên phải). Nếu bạn đặt QLabel label trong tiêu đề lớp (hoặc tên var khác), bạn có thể truy cập trực tiếp biến này sau đó (loại bỏ loại QLabel ban đầu khỏi dòng đầu tiên, tất nhiên).

+0

Làm cách nào để thích ứng với mã để sử dụng "Tin nhắn" có thể dịch được? – Sigur

+0

@Sigur Bất kỳ lý do nào bạn cảm thấy như thế này sẽ khác biệt đáng kể so với giao dịch với bất kỳ QLabel nào khác? – Kitsune

+0

Xin lỗi. Tôi đã cố gắng sử dụng 'tr' với' QLabel' nhưng không thành công. Tôi không biết cách sử dụng 'QLabel' với văn bản có thể dịch được. – Sigur

5

Bạn không thể chỉnh sửa thủ công tệp UI.

+5

Tôi nghĩ rằng đó là một khiếm khuyết trong QtDesigner –

+0

Không phải là một khiếm khuyết mà là một tính năng bị thiếu. Đáng buồn là QtDesigner không có nghĩa là cho UI, có cấu trúc đa cấp (điều này bao gồm việc thêm một QLabel vào một QStatusbar, vv). – rbaleksandar

5

Không thể với Qt Designer. Tôi giải quyết nó bằng cách tạo nhãn một trong Qt Designer và sau này trong constructor của tôi MainWindows thêm dòng này:

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

Trong ứng dụng của tôi, tên lớp của mainwindows là MainWindowsForm, thanh trạng thái được đặt tên statusBar và nhãn là có tên là informationLabel. Sau đó, tôi có:

Ui::MainWindowsForm::statusBar->addWidget(informationLabel); 
Các vấn đề liên quan