FLTK – Wikipedia

Bộ công cụ ánh sáng nhanh ( FLTK phát âm fulltick ) [3] là thư viện tiện ích đa nền tảng (yếu tố điều khiển đồ họa) cho giao diện người dùng đồ họa (GUI) được phát triển bởi Bill Spitzak và những người khác. Được tạo để phù hợp với lập trình đồ họa 3D, nó có giao diện với OpenGL, nhưng nó cũng phù hợp với lập trình GUI nói chung. . .

FLTK là phần mềm miễn phí và nguồn mở, được cấp phép theo Giấy phép Công cộng GNU (LGPL) với một điều khoản được thêm vào cho phép liên kết tĩnh từ các ứng dụng có giấy phép không tương thích.

Trái ngược với các thư viện giao diện người dùng như GTK +, Qt và wxWidgets, FLTK sử dụng thiết kế gọn nhẹ hơn và hạn chế chức năng GUI. Bởi vì điều này, thư viện rất nhỏ (chương trình "Hello World" của FLTK khoảng 100 KiB) và thường được liên kết tĩnh. Nó cũng tránh các macro phức tạp, các bộ tiền xử lý mã riêng biệt và sử dụng một số tính năng C ++ nâng cao: mẫu, ngoại lệ và thông tin loại thời gian chạy (RTTI) hoặc, cho FLTK 1.x, không gian tên. Kết hợp với kích thước khiêm tốn của gói, điều này giúp người dùng mới dễ dàng tìm hiểu. [4]

Những ưu điểm này đi kèm với những nhược điểm tương ứng. FLTK cung cấp ít widget hơn hầu hết các bộ công cụ GUI và do sử dụng các widget không phải là bản địa của nó, không có giao diện gốc trên bất kỳ nền tảng nào.

Ý nghĩa của tên [ chỉnh sửa ]

FLTK ban đầu được thiết kế để tương thích với các Thư viện biểu mẫu được viết cho máy Đồ họa Silicon (SGI) (một dẫn xuất của thư viện này có tên là XForms vẫn được sử dụng khá thường xuyên). Trong thư viện đó, tất cả các chức năng và cấu trúc bắt đầu bằng fl_ . Việc đặt tên này được mở rộng cho tất cả các phương thức và widget mới trong thư viện C ++ và tiền tố này FL được lấy làm tên của thư viện. Sau khi FL được phát hành dưới dạng nguồn mở, người ta đã phát hiện ra rằng việc tìm kiếm "FL" trên Internet là một vấn đề, bởi vì nó cũng là tên viết tắt của Florida. Sau nhiều cuộc tranh luận và tìm kiếm một tên mới cho bộ công cụ đã được nhiều người sử dụng, Bill Spitzak đã đưa ra Bộ công cụ ánh sáng nhanh (FLTK). [5]

Architecture [ chỉnh sửa ]

FLTK là bộ công cụ tiện ích hướng đối tượng được viết bằng ngôn ngữ lập trình C ++. Mặc dù GTK + chủ yếu dành cho Hệ thống X Window, FLTK hoạt động trên các nền tảng khác, bao gồm Microsoft Windows (giao tiếp với API Windows) và OS X (giao tiếp với Quartz). Back-end HTML5 và Wayland đang được phát triển. [ cần trích dẫn ]

Ràng buộc ngôn ngữ [ chỉnh sửa ]

Một thư viện được viết bằng một ngôn ngữ lập trình có thể được sử dụng trong ngôn ngữ khác nếu các ràng buộc ngôn ngữ được viết. FLTK có một loạt các ràng buộc cho các ngôn ngữ khác nhau. [6]

FLTK được thiết kế chủ yếu và được viết bằng ngôn ngữ lập trình C ++. Tuy nhiên, các ràng buộc tồn tại đối với các ngôn ngữ khác, ví dụ Lua, [7] Perl, [8] Python, [9] Ruby [10] và Tcl. [11]

Đối với FLTK 1.x, ví dụ này tạo ra một cửa sổ với nút Được rồi :

 #include    #include    #include     int   main  ( int   argc   char   argv  [])   {     Fl_Window  *   w   =   mới   Fl_Window  ( ] 190 );      mới   Fl_Button  ( 110   130   100   35   ,   "Được rồi" );      w  ->  end  ();      w  ->  hiển thị  ( ] argc   argv );      return   Fl  ::  chạy  ();  }  

[ chỉnh sửa ]

FLTK bao gồm Trình thiết kế giao diện người dùng Fast Light (FLUID), một nhà thiết kế GUI đồ họa tạo ra các tệp tiêu đề và nguồn C ++.

Nhiều chương trình và dự án sử dụng FLTK, bao gồm:

  • Nanolinux, bản phân phối Linux 14 MB [12][13][14][15][16][17]
  • XFDOS, bản phân phối dựa trên FreeDOS với GUI, chuyển Nano-X và FLTK [18][19][20][21]
  • Agenda VR3, trợ lý kỹ thuật số cá nhân dựa trên Linux với phần mềm dựa trên FLTK.
  • Amnesia: Hậu duệ đen tối, bởi Frictional Games sử dụng FLTK làm ứng dụng khởi chạy của nó
  • MwendanoWD, câu đố logic cho máy tính cá nhân của YPH. [22]
  • DiSTI GL Studio, công cụ phát triển giao diện người-máy [25]
  • Kỹ thuật:
    • ForcePAD, một công cụ trực quan để trực quan hóa hành vi của các cấu trúc chịu các điều kiện tải và ranh giới [26]
    • Gmsh, một trình tạo lưới phần tử hữu hạn nguồn mở
    • RoboCIM, phần mềm để mô phỏng và điều khiển hoạt động của hệ thống rô-bốt servo và các thiết bị bên ngoài [27]
  • Môi trường máy tính để bàn Equinox (EDE)
  • Phần mềm ghi đĩa quang FlBurn cho Linux ]
  • Đồ họa:
    • Avimator, biên tập viên Biovision HVELy ​​(BVH)
    • CinePaint, phần mềm vẽ sâu, di chuyển từ GTK + sang FLTK, mã nguồn mở
    • ITK-SNAP, ứng dụng phần mềm cho phân đoạn hình ảnh y tế ] Nuke, một chương trình tổng hợp kỹ thuật số. Cho đến phiên bản 5, bây giờ được thay thế bằng Qt
    • Trình chỉnh sửa phim mở [29]
    • OpenVSP, phác thảo máy bay tham số của NASA, gần đây đã được mở nguồn [30] , phần mềm in poster mã nguồn mở cho Windows, OS X, Linux [31]
  • SmallBASIC, Windows port
  • Trình duyệt web:
    • Dillo, Dillo-2 dựa trên FLTK-2, từ bỏ chi nhánh FLTK này, không có bản phát hành chính thức, là nguyên nhân chính khiến Dillo-3 được bắt đầu, sử dụng FLTK1.3
    • Thứ năm, sao chép chức năng của Opera sớm [32]
    • NetRider [33]
  • Trình quản lý cửa sổ X:

Phiên bản [ chỉnh sửa ]

Lịch sử phiên bản này là một ví dụ về bản chất đôi khi hỗn loạn của phát triển nguồn mở. [34]

1.0.x [ chỉnh sửa ]

Đây là phiên bản ổn định trước đó, hiện không được biết đến.

1.1.x [ chỉnh sửa ]

Đây là phiên bản ổn định trước, hiện chưa được phát hiện.

Chi nhánh 2.0 [ chỉnh sửa ]

Đây là một nhánh phát triển, từ lâu được cho là bước tiếp theo trong quá trình phát triển của FLTK, với nhiều tính năng mới và phong cách lập trình sạch hơn. Nó không bao giờ đạt được sự ổn định, và sự phát triển phần lớn đã chấm dứt. Chi nhánh không hoạt động.

1.2.x [ chỉnh sửa ]

Đây là một nỗ lực để lấy một số tính năng tốt nhất của 2.0 và hợp nhất chúng trở lại vào nhánh 1.1 phổ biến hơn. Nó không còn được phát triển.

1.3.x [ chỉnh sửa ]

Bản phát hành ổn định hiện tại. [35] Cung cấp hỗ trợ UTF-8.

1.4.x [ chỉnh sửa ]

Chi nhánh phát triển hiện tại. Thêm nhiều tính năng hơn vào 1.3. [36]

Chi nhánh 3.0 [ chỉnh sửa ]

Chi nhánh này chủ yếu là một mô hình khái niệm cho công việc trong tương lai. Bây giờ không hoạt động.

Xem thêm [ chỉnh sửa ]

Tài liệu tham khảo [ chỉnh sửa ]

Liên kết ngoài [