วิธีสร้าง GUI เก่า ๆ (เช่นตัวติดตั้งเดเบียน / arch)


13

ฉันได้ทำการติดตั้งจำนวนมากเมื่อเร็ว ๆ นี้และเมื่อเป็นไปได้ฉันมักจะเลือกติดตั้งข้อความจากเมนู GRUB ของ Live CD โปรแกรมติดตั้งส่วนใหญ่มีลักษณะดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันมักจะคิดว่า GUIs เหล่านี้ (ถ้าคุณสามารถเรียกได้ว่าเป็นอย่างนั้น) ช่างน่ากลัวและเบา หากเห็นว่ามีแอปพลิเคชัน / distros จำนวนมากที่ใช้แอปพลิเคชันนั้นจะต้องเป็นไลบรารีที่ใช้ร่วมกัน มีวิธีที่ฉันสามารถทำสิ่งนี้หรือไม่?


ควรสังเกตว่า sysinstallers ส่วนใหญ่สำหรับ linux & bsd มีการนำเสนอส่วนติดต่อผู้ใช้ที่น่ากลัวโดยใช้คำสาปเกี่ยวกับปุ่มตกลงและยกเลิก: ไม่ค่อยชัดเจนเมื่อผู้ใช้เน้นสีไว้ เมื่อใช้งานร่วมกับ curses เป็นการดีที่สุดที่จะไม่ใช้ตัวติดตั้งเหล่านั้นเป็นตัวอย่างการออกแบบ กลับไปเพื่อตรวจสอบโปรแกรม DOS เก่าเหล่านั้นแทนเช่น Lotus 123 สำหรับ GUI กราฟิก ANSI ที่ดีควรทำงานอย่างไรในแง่ของ UI มันเป็นสิ่งที่ชอบ: [Ok] มีสีอ่อน แต่ไม่เน้นจนกว่าผู้ใช้จะถูกเลือก
Jonathan Cline IEEE

คำตอบ:


18

คุณกำลังมองหาncurses


2
อ่านกลับฉันถามตัวเองว่า "การกดปุ่มเงินหมายถึงอะไร" ... ฉันคิดว่าฉันตื่นเต้น
n0pe

3
@MaxMackie: ตอนนี้ที่ติดตามคำถามจะเหมาะดีกว่าสำหรับenglish.stackexchange.com ;)
Piskvor ซ้ายอาคาร

14

ผมไม่ทราบว่าเกี่ยวกับ Arch และ Debian แต่อาจเกิด GUIs เหล่านั้นจะทำด้วยซึ่งจะมีพวงของอาร์กิวเมนต์บรรทัดคำสั่งแล้ววาทกรรมที่โต้ตอบกับdialog(1) ncursesตัวอย่างเช่นเคอร์เนล Linux menuconfig มีลักษณะเช่นนี้:

สกรีนช็อตของ menuconfig

ตัวอย่างdialogการใช้งานคือ:

$ dialog --title "Hello" --infobox "Hello there Unix and Linux Stack Exchange" 20 100

ซึ่งผลลัพธ์ใน:

ภาพหน้าจอของกล่องโต้ตอบ (1)


นี่เป็นสิ่งที่ยอดเยี่ยมจริงๆดังนั้นกล่องโต้ตอบจึงใช้ ncurses เพื่อวาดลงในเทอร์มินัล? ไม่ง่ายไปกว่านั้น ขอบคุณ
n0pe

8

ในระดับที่สูงกว่าคนที่มีลักษณะเหมือนกันว่าโดยทั่วไปใช้บางอย่างเช่นนิวท์ / whiptailหรือโต้ตอบ โดยเฉพาะอย่างยิ่งดูเหมือนว่ามันเป็น newt / whiptail เนื่องจากกล่องโต้ตอบมีแนวโน้มที่จะวาดกรอบรอบตัวควบคุมเช่นกล่องรายการนั้น อีกตัวอย่างหนึ่ง linux kernel config ใช้ไดอะล็อกแบบกำหนดเองแบบตัดดาวน์ (ไม่มีฟีเจอร์พิเศษที่ไม่ได้ใช้และฉันจะจินตนาการว่าช่องทำเครื่องหมายใช่ / ไม่ใช่ / โมดูลเป็นคุณสมบัติที่กำหนดเอง)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.