Có giải pháp nào để nhúng QLabel vào QStatusBar bằng cách sử dụng Qt Designer không?Nhúng nhãn vào QStatusBar bằng cách sử dụng Qt Designer
Trả lời
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).
Bạn không thể chỉnh sửa thủ công tệp UI.
Tôi nghĩ rằng đó là một khiếm khuyết trong QtDesigner –
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
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);
Làm cách nào để thích ứng với mã để sử dụng "Tin nhắn" có thể dịch được? – Sigur
@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
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