Tôi đã làm lập trình điều khiển trong một vài năm, và bây giờ là lúc tôi đã học được một chút về thế giới hấp dẫn của GUI. Tôi đã dabbled một chút trong wxWidgets; đã biên soạn một chương trình Hello World, chơi với nó một chút, v.v.Sự khác nhau giữa X-Windows, wxWidgets, GTK/Qt và OpenGL là gì?
Bây giờ tôi là một trong những người có "lời nguyền cấp thấp": Tôi không hài lòng với việc biết cách sử dụng cái gì đó tốt hiệu ứng - Tôi muốn biết những gì đang xảy ra dưới mui xe, ngay cả khi nó có ít hoặc không có giá trị thực tế.
Vì vậy, tôi đã đọc về chủ đề này (ví dụ: here), nhưng tôi cảm thấy khó khăn để bao quanh đầu tất cả các hệ thống khác nhau, bộ công cụ và những gì họ làm. Cho đến nay tôi đã tìm ra điều đó (hãy sửa tôi nếu tôi sai):
- Bản thân Linux là "chỉ" hạt nhân; nó không cung cấp hỗ trợ GUI (?).
- Hệ thống Cửa sổ X là cơ sở của GUI trên hầu hết các hệ thống giống UNIX.
- GTK là bộ công cụ GUI, Qt chứa bộ công cụ GUI. GTK và Qt ở cùng một mức "" (?).
- Gnome là môi trường máy tính để bàn được xây dựng trên GTK, KDE được xây dựng trên Qt.
- wxWidgets là thư viện bao bọc xung quanh (?) Các bộ công cụ cấp thấp hơn, như GTK, do đó cung cấp các lợi ích đa nền tảng.
- OpenGL là API để hiển thị đồ họa véc tơ 2 và 3-D.
Bây giờ cho một số câu hỏi: gắn bó với hệ thống UNIX-like:
- Ai đang ở dưới cùng của nó tất cả ?, ví dụ mà thành phần làm cho bitmap mà cuối cùng sẽ được hiển thị trên màn hình?
- Điều này có được thực hiện thông qua OpenGL không? Nếu có, ai gọi OpenGL? Và làm thế nào nó được thực hiện trên máy tính cũ mà không có card đồ họa?
- Nếu bạn muốn là thực sự là bướng bỉnh, bạn có thể đi bao xa? API nguyên thủy nhất mà bạn có thể lập trình GUI là gì? X11? OpenGL? (xin đừng nói cổng logic :)).
Để nhận tiền thưởng, có thể về hệ điều hành Windows thì sao? Liệu nó có làm theo cấu trúc tương tự chút nào hay nó hoàn toàn theo cách riêng của nó?
Loại câu hỏi này phù hợp hơn tại http://programmers.stackexchange.com/ – RobbieE
Kính gửi @mga: Tôi khiêm nhường đề xuất bạn đổi tên tiêu đề của câu hỏi thành "Sự khác biệt giữa X-Windows, wxWidgets, GTK/Qt và OpenGL? " Bằng cách đó, câu hỏi có thể được tìm thấy và sử dụng cho người khác. –
Tôi đồng ý với RobbieE. Ngoài ra, nó là quá rộng. – lpapp