2014-06-16 37 views
5

Tôi có một QMainWindow và tôi đã chèn mdiArea vào cửa sổ chính.
Trước tiên, bạn phải xem hình ảnh sau:Làm thế nào để loại bỏ không gian (margin) mà giữa QMainWindow và mdiArea?

Như bạn thấy vùng màu xám là mdiArea và không gian (margin) rằng giữa cửa sổ chính và mdiArea là những gì tôi muốn loại bỏ nó.
Tôi đã sử dụng chức năng setContentsMargins nhưng không làm gì cả.

Tôi làm cách nào để xóa các không gian này?

Tôi muốn được như hình ảnh sau: enter image description here

Trả lời

9

QMainWindowphụ tùng Trung ương có một bố cục. Bố cục bạn sử dụng trên QMainWindow nên được sử dụng trên tiện ích con trung tâm của nó thay thế. Do đó bạn phải gọi

QWidget* QMainWindow::centralWidget() đầu tiên,

vì vậy bạn có thể nhận được các widget trung tâm đầu tiên và sau đó sử dụng

void QLayout::setContentsMargins(int left, int top, int right, int bottom)

để điều chỉnh bố trí của nó. Sơ đồ dưới đây xuất phát từ tài liệu của Qt.

enter image description here enter image description here

Tạo một cửa sổ chính không có phụ tùng Trung ương không được hỗ trợ. Bạn phải có một widget trung tâm ngay cả khi nó chỉ là một trình giữ chỗ.


Ví dụ, bạn có thể có những điều sau đây QMainWindow của constructor:

centralWidget()->layout()->setContentsMargins(0, 0, 0, 0); 
statusBar()->hide(); 
ui->mainToolBar->hide(); 

enter image description here

Thanh tình trạng và thanh cụ đã được ẩn, để để loại bỏ càng nhiều không gian trống càng tốt.

+0

Tôi đã viết mã này trong hàm tạo của MainWindow. nhưng thật không may, vẫn không muốn xóa không gian. –

+0

@LionKing Ý của bạn là "không muốn xóa không gian"? Đó không phải là những gì bạn muốn? – Tay2510

+0

@LionKing OK Tôi đã chỉnh sửa bài đăng của mình, trước hết cần phải gọi cho centerWidget và lấy bố cục đó. – Tay2510

Các vấn đề liên quan