2011-01-14 36 views
14

Tôi có ứng dụng Qt cần được tải trên các thiết bị di động có kích thước màn hình khác nhau. Làm cách nào để tự động chỉnh sửa kích thước màn hình của thiết bị di động?Tự động làm cửa sổ Qt với kích thước màn hình

+4

Chỉ cần làm rõ, bạn không muốn [fullscreen] (http://doc.trolltech.com /4.7/qwidget.html#fullScreen-prop) nhưng thay vì cửa sổ và phù hợp với kích thước màn hình? – Troubadour

Trả lời

14

Nếu bạn muốn cửa sổ chính của ứng dụng chiếm toàn bộ màn hình ngay khi bắt đầu, hãy sử dụng QWidget::showMaximized, ví dụ:

int main(int argc, char **argv) 
{ 
    QApplication app(argc, argv); 
    MyMainWidget widget; 
    widget.showMaximized(); 
    return app.exec(); 
} 

Lưu ý rằng showMaximized là một chức năng thuận tiện mà trong nội bộ gọi QWidget::setWindowState đề cập bởi Andrew:

void QWidget::showMaximized() 
{ 
    // ... 
    setWindowState((windowState() & ~(Qt::WindowMinimized | Qt::WindowFullScreen)) 
        | Qt::WindowMaximized); 
    show(); 
} 
+0

Giả sử kích thước cửa sổ chính của ứng dụng của tôi là 240x320 pixel. Sau đó, tôi phải tải nó trên một thiết bị di động với kích thước màn hình 160X160. Nó sẽ tự động thay đổi kích thước màn hình có sẵn bằng cách sử dụng showMaximized? Cảm ơn ... – Owen

+0

tôi đã thử nhưng nó không vừa với cửa sổ màn hình di động của tôi? –

3

void QWidget::setWindowState (Qt::WindowStates windowState)

Đặt trạng thái cửa sổ thành cửa sổState. Trạng thái cửa sổ là sự kết hợp OR'ed của Qt :: WindowState: Qt :: WindowMinimized, Qt :: WindowMaximized, Qt :: WindowFullScreen và Qt :: WindowActive.

Từ tài liệu về QWidget. Hy vọng nó sẽ giúp

6

Nếu bạn thực sự muốn hình học, bạn có thể sử dụng QDesktopWidget để nhận thông tin về màn hình, bao gồm hình dạng của nó.

Nếu bạn chỉ muốn kích thước cửa sổ chính xác, tuy nhiên, bạn nên sử dụng QWidget::setWindowState, như Andrew được đề xuất.

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