กลับไปหน้าบทความ

อ่าน 4 นาที

ชุดเครื่องมือฟ็อกซ์

ชุด เครื่องมือ FOX เป็น ชุดเครื่องมือวิดเจ็ต แบบโอเพ น ซอร์ส และ ใช้งานได้บนหลายแพลตฟอร์ม กล่าวคือ เป็นไลบรารีขององค์ประกอบพื้นฐานสำหรับการสร้าง ส่วนติดต่อผู้ใช้แบบกราฟิก (GUI)...

ชุดเครื่องมือฟ็อกซ์

ชุดเครื่องมือ FOX
นักพัฒนาเยโรน ฟาน เดอร์ ซิจป์ ชุมชน FOX
เวอร์ชันเสถียร
1.6.58 / 13 พฤษภาคม 2024 ( 13 พฤษภาคม 2024 )
รุ่นทดลองใช้งาน
1.7.86 / 15 สิงหาคม 2024 ( 15 สิงหาคม 2024 )
เขียนเป็นซี++
ระบบปฏิบัติการข้ามแพลตฟอร์ม
พิมพ์ห้องสมุดการพัฒนา
ใบอนุญาตใบอนุญาตสาธารณะทั่วไปของ GNUที่มีภาคผนวกใบอนุญาตที่อนุญาตให้เชื่อมโยงแบบคงที่[ 1 ]
เว็บไซต์fox-toolkit.org

ชุดเครื่องมือ FOXเป็นชุดเครื่องมือวิดเจ็ตแบบโอเพ ซอร์ส และ ใช้งานได้บนหลายแพลตฟอร์ม กล่าวคือ เป็นไลบรารีขององค์ประกอบพื้นฐานสำหรับการสร้างส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) FOX ย่อมาจาก Free Objects for X

มีธีมแบบWindows 95 ที่กำหนดไว้ล่วงหน้า ซึ่งสามารถใช้งานได้ทั้งกับMicrosoft WindowsเองและX Window System (ซึ่งใช้ใน ระบบปฏิบัติการ UNIXและ ระบบปฏิบัติการ ที่คล้าย UNIX หลาย ระบบ) [ 2 ]

ชุดเครื่องมือ FOX ได้รับการเผยแพร่ภายใต้ใบอนุญาต GNU Lesser General Public Licenceการพัฒนาเริ่มต้นขึ้นในปี 1997 โดย Jeroen van der Zijp ในขณะที่เขาทำงานอยู่ที่ CFDRC ตั้งแต่นั้นมา Jeroen van der Zijp ได้ดูแลรักษาไลบรารีหลักและแอปพลิเคชันทดสอบ โดยได้รับความช่วยเหลือจากชุมชนผู้ใช้

ชุดเครื่องมือ FOX เขียนด้วยภาษาC++โดยมีส่วนเชื่อมต่อภาษาสำหรับPython , RubyและEiffel การแจกจ่าย ซอร์สโค้ดของ FOX รองรับการคอมไพล์ด้วยคอมไพเลอร์ C++ หลายตัว (ทั้งเชิงพาณิชย์และฟรี)

ความเข้ากันได้ข้ามแพลตฟอร์ม

ชุดเครื่องมือ FOX

FOX มีความแตกต่างจากชุดเครื่องมือข้ามแพลตฟอร์มอื่นๆ ในด้านต่อไปนี้:

  • Tkเป็นชุดเครื่องมือที่ใช้งานได้บนหลายแพลตฟอร์ม แต่ไม่มีวิดเจ็ตทั้งหมดที่ FOX พิจารณาว่าเหมาะสม
  • Qtเวอร์ชันไม่เกิน 4.5 เคยมีรูปแบบการอนุญาตใช้งานที่กำหนดให้ต้องมีใบอนุญาตเชิงพาณิชย์ในบางกรณี ซึ่ง FOX ไม่ต้องการ
  • wxWidgetsสนับสนุนการใช้ widget ดั้งเดิมบนแต่ละแพลตฟอร์มที่รองรับ
  • FLTKเป็นไลบรารีที่รวดเร็ว ใช้ทรัพยากรน้อย และรองรับการพัฒนาแอปพลิเคชันอย่างรวดเร็ว ต้องการโค้ดในการใช้งานน้อยกว่า แต่ขาดวิดเจ็ตขั้นสูง

ชุดเครื่องมือเหล่านี้ทั้งหมดรองรับการเขียนโปรแกรมบน ระบบปฏิบัติการ Mac OS รุ่นคลาสสิกและ/หรือmacOSซึ่งปัจจุบัน FOX ยังไม่รองรับ

FOX ใช้เทคนิคที่คล้ายกับ วิธีการแบบ Java Swingในการแสดงผลส่วนติดต่อผู้ใช้แบบกราฟิกบนหน้าจอ โดยใช้เฉพาะส่วนประกอบกราฟิกพื้นฐานที่มีอยู่บนแพลตฟอร์มนั้นๆ ซึ่งแตกต่างจากวิธีการแบบ Java AWT ดั้งเดิม ที่ใช้ widget ดั้งเดิม นั่นหมายความว่าแอปพลิเคชันจะมีรูปลักษณ์และการใช้งาน ที่คล้ายคลึงกัน ในทุกแพลตฟอร์ม ในทางทฤษฎี การพอร์ต FOX ไปยังแพลตฟอร์มใหม่ควรจะง่ายกว่าการพัฒนาการรองรับ widget ดั้งเดิมด้วยซ้ำ

ข้อเสียคือ โดยทั่วไปแล้วแอปพลิเคชัน FOX จะมีรูปลักษณ์และการใช้งานที่แตกต่างจากแอปพลิเคชันดั้งเดิมสำหรับแพลตฟอร์มเหล่านั้น ซึ่งผู้ใช้บางรายอาจรู้สึกสับสน นอกจากนี้ คุณสมบัติบางอย่างของแพลตฟอร์มดั้งเดิมอาจไม่สามารถใช้งานได้ทันที เช่น การสนับสนุนการพิมพ์ที่ครอบคลุมหรือการจัดการอินพุตแบบนานาชาติ เนื่องจากจะต้องมีการนำไปใช้งานใหม่ในลักษณะข้ามแพลตฟอร์มก่อนจึงจะสามารถใช้งานใน FOX ได้ แอปพลิเคชันบางตัว เช่นXfe File Managerอนุญาตให้เปลี่ยนโทนสีเพื่อให้เข้ากับสีธีมของระบบได้ดียิ่งขึ้น[ 3 ]บนArch Linuxมีแอปที่เรียกว่า FOX Control Panel ให้ใช้งานเพื่อเปลี่ยนโทนสีของแอปพลิเคชัน FOX ทั้งหมดทั่วทั้งระบบ โดยมาพร้อมกับแพ็คเกจ FOX Toolkit หลัก

ระบบส่งข้อความ

FOX นำเสนอระบบส่งข้อความแบบสองทิศทางที่โปร่งใส วิดเจ็ตแต่ละตัวจะส่งข้อความไปยังเป้าหมายที่กำหนดไว้ ข้อความแต่ละข้อความประกอบด้วยตัวเลือกที่ระบุชนิดของข้อความ และรหัสเฉพาะที่ไม่ซ้ำกันซึ่งได้มาจากรายการของวิดเจ็ต ข้อดีคือ วิดเจ็ตแต่ละตัวสามารถเรียกใช้เมธอดของวิดเจ็ตเป้าหมายได้อย่างโปร่งใส แม้ว่าเมธอดนั้นจะไม่มีอยู่ก็ตาม ในทางกลับกัน ในการใช้งานตัวจัดการข้อความแต่ละตัว เนื่องจากทราบผู้ส่งแล้ว เป้าหมายจึงสามารถส่งข้อความไปยังผู้ส่งได้เช่นกัน นี่เป็นคุณสมบัติที่สำคัญอย่างยิ่งในซอฟต์แวร์ที่เน้นส่วนประกอบ ซึ่งส่วนประกอบต่างๆ อาจเขียนโดยบุคคลที่แตกต่างกัน หรือแม้แต่จากองค์กรที่แตกต่างกัน

ระบบส่งข้อความ FOX ช่วยลดความซับซ้อนของกลยุทธ์การอัปเดต GUI: ในระหว่างการอัปเดตวิดเจ็ต วิดเจ็ตสามารถขอให้เป้าหมายอัปเดตพวกมันได้ ซึ่งหมายความว่าข้อความคำสั่งไม่จำเป็นต้องอัปเดตวิดเจ็ตใดๆ อย่างชัดเจนเหมือนที่เคยทำกัน ในกรณีที่แอปพลิเคชันใช้ข้อความคำสั่ง N ข้อความ โดยแต่ละข้อความอัปเดตวิดเจ็ต M ตัว จะต้องดำเนินการอัปเดต M*N ครั้ง และต้องเขียนข้อความอย่างมากที่สุด M*N ข้อความ ในทางกลับกัน หากวิดเจ็ตร้องขอการอัปเดต จะใช้เพียงข้อความคำสั่ง N ข้อความ และข้อความอัปเดตอย่างมากที่สุด M ข้อความเท่านั้น กลยุทธ์นี้แยกการอัปเดต GUI ออกจากการเปลี่ยนแปลงข้อมูล ทำให้ GUI สะท้อนโครงสร้างข้อมูลพื้นฐานแบบเรียลไทม์

ภายใน

การพึ่งพา

ภายใต้ระบบภายในนั้นขึ้นอยู่กับไลบรารีข้ามแพลตฟอร์ม ซึ่งรวมถึงสิ่งต่อไปนี้: [ 4 ]

สวัสดีโลก

ตัวอย่างต่อไปนี้สร้างแอปพลิเคชัน FOX และกล่องโต้ตอบที่มีปุ่มโดยใช้ภาษา C++:

#รวมไฟล์"fx.h"int main ( int argc , char * argv []) { FXApp application ( "Hello" , "FoxTest" ); application . init ( argc , argv ); FXMainWindow * main = new FXMainWindow ( & application , "Hello" , NULL , NULL , DECOR_ALL ); new FXButton ( main , "&Hello, World!" , NULL , & application , FXApp :: ID_QUIT ); application . create (); main -> show ( PLACEMENT_SCREEN ); return application . run (); }

นอกจากนี้ยังสามารถสร้างบทสนทนาด้วยPython 2.2 และRuby ได้อีกด้วย :

เอฟเอ็กซ์พี

#!/usr/bin/env python3จากFXPy.fox นำเข้า* นำเข้าsysdef runme (): app = FXApp ( "Hello" , " Test " ) app.init ( sys.argv ) main = FXMainWindow ( app , " Hello " , None , None , DECOR_ALL ) button = FXButton ( main , " & Hello , World ! " , None , app , FXApp.ID_QUIT ) app.create ( ) main.show ( PLACEMENT_SCREEN ) app.run ( )ถ้า__name__ == "__main__" : runme ()

เอฟเอ็กซ์รูบี้

require ' fox16' include Fox application = FXApp.new ( " Hello " , " FoxTest" ) main = FXMainWindow.new ( application , "Hi" , nil , nil , DECOR_ALL ) FXButton.new ( main , " & Hello , World ! " , nil , application , FXApp :: ID_QUIT , LAYOUT_FILL_X | BUTTON_TOOLBAR | FRAME_RAISED | FRAME_THICK ) application.create ( ) main.show ( PLACEMENT_SCREEN ) application.run ( )

ซอฟต์แวร์ที่สร้างขึ้นบน FOX

  • CFD-View – โปรแกรมประมวลผลหลังการจำลองที่พัฒนาโดย ESI Group
  • Abaqus/CAE – ตัวประมวลผลก่อนและหลังของชุดโปรแกรมไฟไนต์เอเลเมนต์Abaqus [ 5 ]
  • bdStudio – เครื่องมือแสดงภาพที่แม่นยำและใช้งานง่ายสำหรับการจำลองสถานการณ์ด้านการบินและอวกาศแบบเรียลไทม์ที่ซับซ้อน พัฒนาโดย SAIC
  • สถาปัตยกรรมทดสอบแบบโมดูลาร์ ของ Intel (IMTA)
  • PVRShaman – สตูดิโอพัฒนาเชเดอร์ฟรีจากImagination Technologies
  • LinkCAD – โปรแกรมแปลงไฟล์เชิงพาณิชย์สำหรับรูปแบบ CAD ต่างๆ
  • TMP Vision และ SLIM – ออกแบบมาเพื่อตอบสนองความต้องการของแบบจำลอง FEA ที่ซับซ้อน
  • Kerkythea – ระบบเรนเดอร์แบบหลายวิธี
  • Acronis True Imageและผลิตภัณฑ์Acronis อื่นๆ [ 6 ]
  • Goggles Music Manager – โปรแกรมจัดการและเล่นคอลเลกชันเพลง
  • xfe – โปรแกรมจัดการไฟล์แบบกราฟิกสำหรับระบบ X Window System
  • TnFOX – เวอร์ชันแยกย่อยจากคลังข้อมูลของ FOX
  • SUMO (Simulation of Urban MObility) – โปรแกรมจำลองการจราจรพร้อมตัวแก้ไข GUI

ดูเพิ่มเติม

  • FLTK – ชุดเครื่องมือวิดเจ็ตขนาดเล็ก ใช้งานได้บนหลายแพลตฟอร์ม และไม่จำเป็นต้องเป็นแอปพลิเคชันดั้งเดิม
  • fpGUI – ชุดเครื่องมือ GUI ข้ามแพลตฟอร์ม พร้อมตัวออกแบบฟอร์มแบบภาพ และตัวอ่านเอกสารช่วยเหลือแบบกำหนดเอง
  • GTK – ชุดเครื่องมือวิดเจ็ตที่ใช้โดยแอปพลิเคชันGNOME
  • gtkmm – อินเทอร์เฟซ C++ อย่างเป็นทางการสำหรับ GTK
  • IUP – ชุดเครื่องมือแบบหลายแพลตฟอร์มสำหรับการสร้างส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) ดั้งเดิม
  • น้ำผลไม้
  • Qt – ชุดเครื่องมือวิดเจ็ตที่ใช้โดยKDE
  • อัลติเมท++
  • ชุดเครื่องมือวิดเจ็ต
  • wxWidgets – ไลบรารีวิดเจ็ต C++ แบบโอเพนซอร์สข้ามแพลตฟอร์ม ที่ห่อหุ้มชุดเครื่องมือวิดเจ็ตดั้งเดิม
  • รายชื่อชุดเครื่องมือวิดเจ็ต
  • เว็บไซต์อย่างเป็นทางการแก้ไขข้อมูลนี้ได้ที่วิกิดาต้า

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Fox_toolkit&oldid=1320115838 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ชุดเครื่องมือฟ็อกซ์

ชุด เครื่องมือ FOX เป็น ชุดเครื่องมือวิดเจ็ต แบบโอเพ น ซอร์ส และ ใช้งานได้บนหลายแพลตฟอร์ม กล่าวคือ เป็นไลบรารีขององค์ประกอบพื้นฐานสำหรับการสร้าง ส่วนติดต่อผู้ใช้แบบกราฟิก (GUI)...

ความเข้ากันได้ข้ามแพลตฟอร์ม

FOX มีความแตกต่างจากชุดเครื่องมือข้ามแพลตฟอร์มอื่นๆ ในด้านต่อไปนี้:

ระบบส่งข้อความ

FOX นำเสนอระบบส่งข้อความแบบสองทิศทางที่โปร่งใส วิดเจ็ตแต่ละตัวจะส่งข้อความไปยังเป้าหมายที่กำหนดไว้ ข้อความแต่ละข้อความประกอบด้วยตัวเลือกที่ระบุชนิดของข้อความ และรหัสเฉพาะที่ไม่ซ้ำกันซึ่งได้มาจากรายการของวิดเจ็ต ข้อดีคือ...

การพึ่งพา

ภายใต้ระบบภายในนั้นขึ้นอยู่กับไลบรารีข้ามแพลตฟอร์ม ซึ่งรวมถึงสิ่งต่อไปนี้: [ 4 ]