โปรแกรม C ++ ทั้งหมดของฉันจนถึงตอนนี้ใช้อินเตอร์เฟสบรรทัดคำสั่งและภาษาอื่น ๆ ที่ฉันมีประสบการณ์คือ PHP ซึ่งไม่รองรับ GUI
ฉันจะเริ่มต้นด้วยการเขียนโปรแกรมอินเทอร์เฟซผู้ใช้แบบกราฟิกใน C ++ ได้ที่ไหน ฉันจะสร้างได้อย่างไร
โปรแกรม C ++ ทั้งหมดของฉันจนถึงตอนนี้ใช้อินเตอร์เฟสบรรทัดคำสั่งและภาษาอื่น ๆ ที่ฉันมีประสบการณ์คือ PHP ซึ่งไม่รองรับ GUI
ฉันจะเริ่มต้นด้วยการเขียนโปรแกรมอินเทอร์เฟซผู้ใช้แบบกราฟิกใน C ++ ได้ที่ไหน ฉันจะสร้างได้อย่างไร
คำตอบ:
โดยพื้นฐานแล้วระบบหน้าต่างของระบบปฏิบัติการจะเปิดเผยการเรียก API บางอย่างที่คุณสามารถทำงานได้เช่นสร้างหน้าต่างหรือวางปุ่มบนหน้าต่าง โดยทั่วไปคุณจะได้รับชุดของไฟล์ส่วนหัวและคุณสามารถเรียกฟังก์ชั่นในห้องสมุดที่นำเข้าเหล่านั้นเช่นเดียวกับที่คุณจะทำอย่างไรกับ STDLIB printf
และ
ระบบปฏิบัติการแต่ละระบบมาพร้อมกับชุดเครื่องมือ GUI ของตัวเองชุดของไฟล์ส่วนหัวและการเรียก API และวิธีการทำสิ่งต่าง ๆ ของตนเอง นอกจากนี้ยังมีชุดเครื่องมือข้ามแพลตฟอร์มเช่นGTK , QtและwxWidgetsที่ช่วยให้คุณสร้างโปรแกรมที่ทำงานได้ทุกที่ พวกเขาประสบความสำเร็จโดยการเรียก API เดียวกันบนแต่ละแพลตฟอร์ม แต่การใช้งานที่แตกต่างกันสำหรับฟังก์ชั่น API เหล่านั้นที่เรียกใช้ไปยังการเรียก API ของระบบปฏิบัติการ
สิ่งหนึ่งที่พวกเขาทุกคนมีเหมือนกันซึ่งจะแตกต่างจากโปรแกรม CLI คือสิ่งที่เรียกว่าเหตุการณ์วนรอบ แนวคิดพื้นฐานมีค่อนข้างซับซ้อนและยากที่จะบีบอัด แต่ในสาระสำคัญมันหมายความว่าไม่มีอะไรมากที่จะเกิดขึ้นในชั้นเรียน / ฟังก์ชั่นหลักของคุณยกเว้น:
มีทรัพยากรมากมายเกี่ยวกับการเขียนโปรแกรมตามเหตุการณ์ หากคุณมีประสบการณ์ใด ๆ เกี่ยวกับ JavaScript มันเป็นแนวคิดพื้นฐานเดียวกันยกเว้นว่าคุณผู้บันทึกไม่มีสิทธิ์เข้าถึงหรือควบคุมวนรอบเหตุการณ์เองหรือเหตุการณ์ใดที่มีอยู่งานเดียวของคุณคือการเขียนและลงทะเบียนตัวจัดการ
คุณควรทราบว่าการเขียนโปรแกรม GUI นั้นซับซ้อนและยากอย่างเหลือเชื่อโดยทั่วไป หากคุณมีตัวเลือกจริง ๆ แล้วมันง่ายกว่ามากที่จะรวมเว็บเซิร์ฟเวอร์แบบฝังในโปรแกรมของคุณและมีส่วนต่อประสานกับ HTML / เว็บ ข้อยกเว้นอย่างหนึ่งที่ฉันพบคือแอพสร้างอินเทอร์เฟซCocoa + Xcode + tutorials ที่ทำให้มันเป็นสภาพแวดล้อมที่เข้าถึงได้ง่ายที่สุดสำหรับผู้ที่เพิ่งเริ่มโปรแกรม GUI ที่ฉันเห็น
มีไลบรารี GUI แบบพกพาจำนวนมากฟรีแต่ละแห่งมีจุดแข็งและจุดอ่อนของตนเอง:
โดยเฉพาะอย่างยิ่งQt มีแบบฝึกหัดและเครื่องมือที่ช่วยให้คุณเริ่มต้นใช้งานได้ดี สนุก!
อย่างไรก็ตามโปรดทราบว่าคุณควรหลีกเลี่ยงการใช้งานเฉพาะแพลตฟอร์มเช่น Win32 API หรือ MFC ที่เชื่อมโยงคุณโดยไม่จำเป็นบนแพลตฟอร์มใด ๆ โดยแทบไม่มีประโยชน์
OS อัลกอริทึมอิสระ " การสร้างแอปพลิเคชัน GUI ใน C ++ ในสามขั้นตอน ":
ติดตั้งQt Creator
สร้างโครงการใหม่ (แอปพลิเคชัน Qt Widgets)
สร้างมัน
ขอแสดงความยินดีคุณมี GUI แรกของคุณใน C ++
ตอนนี้คุณพร้อมที่จะอ่านเอกสารจำนวนมากเพื่อสร้างสิ่งที่ซับซ้อนกว่าแอปพลิเคชัน GUI "Hello world"
รับความคิดเห็นของ "พูด Windows XP เป็นตัวอย่าง" แล้วตัวเลือกของคุณคือ:
ติดต่อโดยตรงกับระบบปฏิบัติการผ่าน API ซึ่งสำหรับ Microsoft Windows เป็นสายแปลกใจแปลกใจของ Windows API การอ้างอิงที่ชัดเจนสำหรับ WinAPI คือไมโครซอฟท์เว็บไซต์ MSDN ที่เป็นที่นิยมกวดวิชาเริ่มต้นออนไลน์ที่เป็นtheForger ของ Win32 API กวดวิชาเขียนโปรแกรม หนังสือคลาสสิกสำหรับชาร์ลส์ที่เป็น Petzold ของการเขียนโปรแกรมของ Windows รุ่นที่
ใช้แพลตฟอร์มเฉพาะ (ทั้งในแง่ของ OS และคอมไพเลอร์) ไลบรารีเฉพาะเช่นMFCซึ่งตัด WinAPI ลงในคลาส C ++ การอ้างอิงสำหรับนั้นคือ MSDN อีกครั้ง หนังสือคลาสสิกที่เป็นเจฟฟ์โพรไซิสของการเขียนโปรแกรม Windows ด้วย MFC พิมพ์ครั้งที่ หากคุณกำลังใช้พูด CodeGear C ++ Builder แล้วตัวเลือกที่นี่เป็นVCL
ใช้ไลบรารีข้ามแพลตฟอร์มเช่นGTK + (wrapper C ++: gtkmm ), Qt , wxWidgetsหรือFLTKที่ห่อ API ของระบบปฏิบัติการเฉพาะ ข้อดีของสิ่งเหล่านี้คือโดยทั่วไปโปรแกรมของคุณสามารถรวบรวมสำหรับระบบปฏิบัติการที่แตกต่างกันโดยไม่ต้องเปลี่ยนซอร์สโค้ด ดังที่ได้กล่าวไปแล้วพวกเขาแต่ละคนมีจุดแข็งและจุดอ่อนของตนเอง ข้อควรพิจารณาประการหนึ่งเมื่อเลือกว่าจะใช้อันไหนเป็นใบอนุญาต สำหรับตัวอย่างที่ระบุ GTK + & gtkmm เป็นลิขสิทธิ์ภายใต้ LGPL, Qt อยู่ภายใต้ใบอนุญาตต่างๆรวมถึงตัวเลือกกรรมสิทธิ์ wxWidgets อยู่ภายใต้ใบอนุญาต wxWindows ของตัวเอง (เปลี่ยนชื่อเป็นใบอนุญาต wxWidgets) และ FLTK อยู่ภายใต้ LGPL โดยมีข้อยกเว้น สำหรับการอ้างอิงการสอนและหรือหนังสือให้อ้างอิงเว็บไซต์ของแต่ละคนเพื่อดูรายละเอียด
เนื่องจากฉันเป็นที่ที่คุณอยู่ในตอนนี้ฉันคิดว่าฉันสามารถ "ตอบ" คุณได้
ความจริงก็คือไม่มีวิธีง่ายๆในการสร้าง GUI GUI ขึ้นอยู่กับแพลตฟอร์มและรหัสเฉพาะของ OS เป็นอย่างมากนั่นคือเหตุผลที่คุณควรเริ่มอ่านเอกสารแพลตฟอร์ม / ระบบปฏิบัติการเป้าหมายของคุณใน API การจัดการหน้าต่าง ข้อดีคือมีห้องสมุดมากมายที่ตอบสนองข้อ จำกัด เหล่านี้และความแตกต่างของสถาปัตยกรรมนามธรรมใน API แบบหลายแพลตฟอร์มเดียว สิ่งที่แนะนำก่อนหน้านี้คือ GTK และ Qt เป็นห้องสมุดบางส่วน
แต่สิ่งเหล่านี้ก็ซับซ้อนเกินไปเนื่องจากแนวคิดใหม่จำนวนมากประเภทข้อมูลเนมสเปซและคลาสได้รับการแนะนำทั้งหมดในคราวเดียว ด้วยเหตุนี้พวกเขาจึงมาพร้อมกับตัวแก้ไข GUI WYSIWYG บางตัว พวกเขาทำซอฟต์แวร์โปรแกรมมิ่งกับ GUI ได้
เพื่อสรุปผลยังมี "สภาพแวดล้อม" ที่ไม่เสียค่าใช้จ่ายสำหรับการพัฒนา GUI เช่น Visual Studio จาก Microsoft สำหรับผู้ที่มีพื้นหลังประสบการณ์Delphiแล้ว Visual Studio อาจคุ้นเคยมากกว่า นอกจากนี้ยังมีทางเลือกฟรีให้กับสภาพแวดล้อม Visual Studio แบบเต็มที่จัดทำจาก Microsoft: Visual Studio Expressซึ่งเกินพอสำหรับการเริ่มต้นในการพัฒนา GUI
ฉันพบเว็บไซต์ที่มีบทช่วยสอน "แบบง่าย": http://www.winprog.org/tutorial/start.html
ฉันใช้ FLTK เพราะQtไม่ฟรี ฉันไม่ได้เลือกwxWidgetsเพราะการทดสอบครั้งแรกของฉันกับHello, World! โปรแกรมผลิตไฟล์เรียกทำงาน 24 MB, FLTK 0.8 MB ...