2009-05-15 12 views
19

Tôi nghĩ trình quản lý cửa sổ thông thường xác định vị trí ban đầu của vị trí QMainWindow trên đầu bàn. Tôi muốn tự mình đặt vị trí ban đầu. Làm thế nào được thực hiện với Qt trên Windows?Qt: cách đặt vị trí ban đầu của cửa sổ chính?

+0

Những người trả lời câu hỏi này có thể cho tôi biết điều này không: Làm cách nào để cửa sổ nhớ vị trí cũ của nó nhưng quay lại màn hình nếu vị trí đó đặt cửa sổ tắt màn hình? –

+0

http://doc.trolltech.com/4.3/geometry.html cuộn xuống "Khôi phục hình học của cửa sổ" –

Trả lời

5

Tôi tin rằng bạn đang tìm kiếm setGeometry.

+2

Liên kết tiện lợi cho phiên bản Qt mới nhất: http://doc.trolltech.com/latest/qlayoutitem. html # setGeometry – Pieter

25

Bạn có thể khôi phục lại hình dạng cửa sổ với restoreGeometry(), và tình trạng của các yếu tố cập cảng với restoreState(), trong việc xây dựng các MainWindow của bạn ...

QSettings settings("yourcompany", "yourapp"); 

    restoreGeometry(settings.value("geometry").toByteArray()); 
    restoreState(settings.value("state").toByteArray(),YOUR_UI_VERSION); 

Sau đó, nếu bạn ghi đè closeEvent(), bạn có thể tiết kiệm nhà nước như sau:

QSettings settings("yourcompany", "yourapp"); 

    settings.setValue("geometry", saveGeometry()); 
    settings.setValue("state", saveState(YOUR_UI_VERSION)); 

YOUR_UI_VERSION là hằng số bạn nên tăng khi giao diện người dùng thay đổi đáng kể để ngăn khôi phục trạng thái không hợp lệ.

+0

Chính xác. . – Thomi

+1

+1: Tôi có linh cảm giống như vậy, nhưng không biết chính xác ... –