2013-03-25 37 views
7

Tôi chỉ muốn biết Standard C++ có cho phép lập trình GUI không?Đồ họa chỉ sử dụng Standard C++?

Có 2 khía cạnh này:

  1. Widgets cho giao diện người dùng như cửa sổ, hộp thoại, nút nhấn, vv
  2. Graphics như vẽ hình tròn, hình chữ nhật, spline, vv

Tôi có được sử dụng Qt cho giao diện người dùng của tôi & chưa thấy ai làm GUI trong C++ chỉ.

PS: Tôi chỉ quan tâm đến ngôn ngữ C++, tôi biết rằng Java cho phép lập trình GUI!

UPDATE: Một câu hỏi mới đã được bổ sung ở đây: How frameworks like Qt create GUI, if C++ has no functionality for that?

+2

Câu trả lời ngắn gọn: không. – Morwenn

Trả lời

5

Không, điều này là không thể. C++ hoạt động trên nhiều thiết bị, một số trong số đó không có khả năng đó.

Qt có thể thực hiện việc này, thường là do Hệ điều hành chạy trên đó cung cấp chức năng đó. Nó thường được hiển thị dưới dạng một tập hợp các hàm C, trong thực tế có nghĩa là chúng được gọi bằng mã C++ trong Qt. Những gì hệ điều hành sử dụng nội bộ, những người hiểu biết. Nó thậm chí có thể để lại một số công việc cho GPU hiện nay.

Và trên một số hệ thống nhúng, Qt chỉ nhận con trỏ vào bộ nhớ màn hình và tất cả các pixel đều tự thao tác. Đó không phải là giải pháp khi bạn phải chia sẻ màn hình với nhiều ứng dụng, nhưng đối với các thiết bị có chức năng đơn, nó chắc chắn hoạt động.

4

số Có gì về GUI trong tiêu chuẩn C++ là.

Khung sử dụng hệ điều hành. Tiêu chuẩn C++ - không.

1

Chuẩn C++ không cấm lập trình GUI (IOW, nó cho phép nó), nhưng đồng thời nó không cung cấp bất kỳ chức năng thư viện chuẩn nào cho điều đó. Đó là ngoài phạm vi của ngôn ngữ và thư viện chuẩn của nó và là hệ điều hành/nền tảng cụ thể.

Giới thiệu về đồ họa điều duy nhất bạn có thể thực hiện trong đồng bằng C++ trực tiếp là ASCII art. :)

+0

Vâng, bạn * có thể * thực sự vẽ lên màn hình theo cách thủ công- xem http://stackoverflow.com/a/4887470. Nó chỉ không được hỗ trợ * trực tiếp * trong tiêu chuẩn và phụ thuộc vào các quy ước của OS.Nó chắc chắn có thể được thực hiện, nhưng nó sẽ có nghĩa là làm cho một thư viện đồ họa toàn bộ (dựng hình phần mềm) để có được thiết lập. Tại thời điểm đó, bạn cũng có thể sử dụng SDL hoặc ít nhất OpenGL. –

2

Nó cho phép nó, theo nghĩa là nó không hạn chế khả năng thực hiện để tạo các cơ sở GUI có sẵn nếu nó chọn.

Tiêu chuẩn không yêu cầu môi trường GUI có sẵn - nhiều môi trường thời gian chạy của triển khai không có sẵn vì vậy không có giao diện chuẩn bắt buộc.

Cũng không có giao diện GUI tùy chọn được chuẩn hóa.

+1

@Cool_Coder: Một câu hỏi mới nên được đặt ra trong một câu hỏi mới; nếu không bạn sẽ vô hiệu tất cả các câu trả lời hiện có. –

+0

tiền phạt, sẽ đặt câu hỏi mới ngay bây giờ :) –

+0

thêm câu hỏi tại đây: http://stackoverflow.com/questions/15611487/how-frameworks-like-qt-create-gui-if-c-has-no- chức năng-cho-rằng –

3

Không, nó không được bao gồm. Bạn có thể muốn đọc giải thích từ người tạo ngôn ngữ: http://www.stroustrup.com/bs_faq.html#gui

Khuôn khổ GUI sử dụng các cơ sở cấp thấp được API hệ điều hành hoặc API trình quản lý cửa sổ cung cấp.