2016-03-05 23 views
5

Tôi đang viết một ứng dụng Qt (Widgets) Qi đơn giản cho các cửa sổ 10. Tôi đang sử dụng phiên bản beta Qt 5.6.0.ứng dụng Qt Desktop không đúng cách trong các cửa sổ 10

Vấn đề tôi đang gặp là nó không được rộng quyền màn hình của surfacebook tôi tại tất cả:

enter image description here

Đó là một chút khó khăn để nói vì SO quy mô hình ảnh, nhưng thông báo các thanh điều khiển thanh tiêu đề của tiện ích con dock nhỏ như thế nào so với các nút điều khiển thanh tiêu đề của cửa sổ.

This link từ Qt cuộc đàm phán về mở rộng quy mô, nhưng nó chủ yếu tập trung vào QML/qtQuick và các ứng dụng điện thoại di động nói chung và bổ sung dường như ngụ ý rằng trong một ứng dụng QtWidgets máy tính để bàn, QPainter sẽ tự động xác định tỉ lệ thích hợp, mà nó rõ ràng không phải là .

Cách tốt nhất để đảm bảo rằng các ứng dụng Qt không phải qml trên máy tính để bàn mở rộng đúng cách trên màn hình DPI cao, cụ thể với cửa sổ 10?

Trả lời

7

Gần đây, Qt đã phát hành một bài đăng trên blog về vấn đề này here.

Hỗ trợ DPI cao được bật từ Qt 5.6 trở đi. Trên nền tảng OS X, có hỗ trợ riêng cho High-DPI. Trên X11/Windows/Android, có hai phương pháp để kích hoạt tính năng phát hiện cao DPI mỗi bài viết trên blog:

  1. Đặt biến môi trường
  2. Thiết lập một thuộc tính trong mã nguồn chương trình

Setting QT_AUTO_SCREEN_SCALE_FACTOR=1 trong các biến môi trường hệ thống của bạn sẽ khắc phục vấn đề mở rộng quy mô.

Ngoài ra, đặt QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); trong mã nguồn ứng dụng của bạn cũng sẽ cho phép chia tỷ lệ DPI tự động cao.

THÔNG BÁO: Để sử dụng phương pháp thuộc tính, bạn phải thiết lập các thuộc tính trước bạn tạo đối tượng QApplication của bạn, mà là để nói:

#include <QApplication> 

int main(int argc, char *argv[]) 
{ 
    QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); 

    QApplication app(argc, argv); 
    return app.exec(); 
} 
Các vấn đề liên quan