2015-04-07 17 views
5

Tôi gặp vấn đề về khả năng tương thích giữa Linux và MacOS với Matlab Gui. Giao diện đồ họa được phát triển dưới Linux Debian 7.0. Đây là khía cạnh trên nền tảng này:Khả năng tương thích Matlab Gui - Các khía cạnh khác nhau giữa Linux và MacOS

enter image description here

Bây giờ, tôi chạy file .m trên hệ điều hành MacOS và đây là kết quả:

enter image description here

Như bạn thấy, bảng điều khiển (hộp nơi có 3 đĩa trên hình đầu tiên (xin lỗi, 3 đĩa không xuất hiện trên giây)) và, trên toàn cầu, hình trên MacOS 10.9.5 được kéo dài theo chiều ngang, tức là cửa sổ rộng hơn cao.

Tôi đã cố gắng thay đổi Đơn vị (thử với các ký tự, chuẩn hóa, pixel) nhưng không có gì.

không làm phiền tôi có phông chữ khác cho các hộp và nút "chỉnh sửa" nhưng tôi muốn có cùng tỷ lệ kích thước trong cả hai hệ điều hành cho bảng điều khiển, tức là có bảng điều khiển hình vuông như dưới Linux Matlab.

Nếu ai đó có thể giúp tôi, điều này sẽ được tốt đẹp

Cảm ơn

+6

Bạn sẽ nhận được trợ giúp thêm nếu bạn đăng một ví dụ tối thiểu để tái tạo sự cố –

+0

Màn hình Mac có thể sử dụng một số độ phân giải (_unconventional_) sôi nổi và để thích ứng với chúng cũng sử dụng một số cài đặt DPI độc đáo. Điều đầu tiên tôi sẽ làm là kiểm tra xem các thiết lập DPI có thể so sánh được trên cả hai hệ điều hành của bạn. Đối với các thiết lập DPI trong MAC, bạn có thể xem [tại đây] (http://superuser.com/questions/13412/change-dpi-on-osx) hoặc [tại đây] (http://www.eizoglobal.com/support/ khả năng tương thích/dpi_scaling_settings_mac_os_x/index.html). Đối với Linux, bạn có thể bắt đầu [tại đây] (http://askubuntu.com/questions/197828/how-to-find-and-change-the-screen-dpi) – Hoki

Trả lời

1

Bí quyết là không chỉ để thiết lập 'Units'-'pixels' các đối tượng gfx của bạn, mà còn sử dụng các đơn vị để thiết lập vị trí này. :-)

Trong đoạn mã sau ha là tay cầm của các trục và hf tay cầm của hình kèm theo. Bạn có thể buộc một kích thước nhất định bằng pixel cho các trục:

set(hf, 'Units', 'pixels'); %// Not necessary, but better not mix units 

set(ha, 'Units', 'pixels'); 
pos = get(ha, 'position'); 
set(ha, [pos(1:2), 400, 400]); %// 400x400 pixels 

Bạn có thể áp dụng điều này cho vị trí của bất kỳ đối tượng đồ họa nào trong hình.

+0

Tôi đã tạo một phòng chat MATLAB cho chúng tôi thảo luận về những điều MATLAB liên quan, hoặc cho các cuộc thảo luận vượt quá giới hạn của một bình luận duy nhất. Ghé thăm chúng tôi khi bạn có thời gian! - http://chat.stackoverflow.com/rooms/81987/matlab – rayryeng

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