2013-05-15 17 views
5

Trong tài liệu của QPaintDevice (mà tất cả paintable-cho các tổ chức xuất phát từ, chẳng hạn như QWidget, QPixmap, vv), có hai chức năng để nhận được Sở KH & ĐT của thiết bịSự khác nhau giữa logicalDpiX và physicalDpiX trong Qt là gì?

int logicalDpiX() const; 
int physicalDpiX() const; 

int logicalDpiY() const; 
int logicalDpiX() const; 

Các tài liệu nói

Các hàm logicalDpiX() và logicalDpiY() trả về độ phân giải ngang và dọc của thiết bị theo các chấm trên mỗi inch. Các hàm physicalDpiX() và physicalDpiY() cũng trả về độ phân giải của thiết bị theo các chấm trên mỗi inch, nhưng lưu ý rằng nếu độ phân giải vật lý và logic khác nhau, QPaintEngine tương ứng phải xử lý ánh xạ. Cuối cùng, hàm colorCount() trả về số lượng các màu khác nhau có sẵn cho thiết bị sơn.

Mặc dù mô tả này, tôi vẫn không hiểu mục đích của sự khác biệt là gì. Ai đó có thể làm sáng tỏ điều này không?

Trả lời

7

Tôi cho rằng vật lý là độ phân giải thực tế của thiết bị và hợp lý là những gì người dùng đã đặt trong tùy chọn os. Điều này là phổ biến với võng mạc hoặc màn hình độ phân giải cao khác, nơi sử dụng các chấm vật lý cho các điểm ảnh sẽ dẫn đến tất cả mọi thứ là quá nhỏ.

tôi thấy cửa sổ thông tin này cụ thể: http://msdn.microsoft.com/en-us/library/windows/apps/ff684173

Bởi vì kích thước điểm ảnh thực tế khác nhau, văn bản có thể đọc được trên một màn hình có thể là quá nhỏ trên màn hình khác. Ngoài ra, mọi người có các tùy chọn khác nhau — một số người thích văn bản lớn hơn. Vì lý do này, Windows cho phép người dùng thay đổi cài đặt DPI. Ví dụ: nếu người dùng đặt màn hình thành 144 DPI, phông chữ 72 điểm cao 144 pixel. Các cài đặt DPI chuẩn là 100% (96 DPI), 125% (120 DPI) và 150% (144 DPI). Người dùng cũng có thể áp dụng cài đặt tùy chỉnh. Bắt đầu từ Windows 7, DPI là cài đặt cho mỗi người dùng.

Thậm chí tốt hơn: QT docs:

Lưu ý về logic vs chấm vật lý mỗi inch: vật lý DPI được dựa trên các kích thước điểm ảnh vật lý thực tế khi có sẵn, và rất hữu ích cho xem trước khi in và các trường hợp khác mà bạn muốn biết chính xác các kích thước vật lý của nội dung được hiển thị trên màn hình . Các chấm logic trên mỗi inch được sử dụng để chuyển đổi các thành phần giao diện người dùng và phông chữ từ điểm kích thước thành kích thước pixel và có thể khác với các chấm vật lý mỗi inch. Các chấm logic trên mỗi inch đôi khi có thể được người dùng đặt trong bảng cài đặt của môi trường máy tính để bàn , để cho phép người dùng kiểm soát toàn cầu giao diện người dùng và kích thước phông chữ trong các ứng dụng khác nhau.

0

Tôi không chắc chắn 100%, nhưng tôi nghĩ rằng độ phân giải vật lý là độ phân giải thực tế của canvas bạn đang vẽ. độ phân giải hợp lý - là độ phân giải bạn sử dụng trong chương trình của mình. Ví dụ để xử lý các màn hình khác nhau, bạn có thể nói rằng đối với bất kỳ độ phân giải vật lý nào của màn hình (canvas), tôi sẽ làm việc với độ phân giải hợp lý 100 trên 100 pixel và sử dụng bố cục cố định chẳng hạn.Việc tái tỷ lệ sẽ được thực hiện bởi họa sĩ tự động sử dụng độ phân giải vật lý

OpenGL hoạt động theo cách này, ví dụ. Đầu tiên nó biến đổi tất cả các tọa độ (sử dụng mô hình, khung nhìn, ma trận chiếu) thành một khối [-1, 1], thực hiện các phép tính trong các coords này và sau đó ánh xạ chúng thành bộ đệm màu thực tế

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