การใช้งานภาษาประกาศ GUI

ฉันเพิ่งเริ่มทำงานในโครงการเกี่ยวกับการสร้าง GUI โดยใช้ภาษาที่ประกาศบางรูปแบบ สิ่งที่ฉันหมายถึงคือฉันต้องอธิบายลำดับชั้นของวัตถุ โดยไม่ต้องระบุประเภทของวิดเจ็ต GUI ที่จะใช้เพื่อ "แสดง" ลำดับชั้นนั้น ตัวอย่างเช่น สำหรับลำดับชั้นที่มีอยู่ H บางส่วน โดยใช้รูปแบบ JSON (หรืออะไรทำนองนั้น):

H = 
{
    "title" : "Label_1"
    "children" : 
    [
        {
            "title" : "Label_2"
            "children": 
            [
                {
                    "title": "Field_A"
                    "type": "Integer"
                    "value": 10
                },

                {
                    "title": "Field_B"
                    "type": "String"
                    "value": "YES"
                }
            ]
         }
    ]
}

บางคนสามารถสร้างหน้าต่างง่ายๆ ที่จะแสดงให้ผู้ใช้เห็นโดยการกดปุ่มที่มีป้ายกำกับ "Label_1" หน้าต่างอาจมีชื่อว่า "Label_2" และมีสองฟิลด์ชื่อ "Field_A" และ "Field_B" ที่ยอมรับค่าจำนวนเต็มและบูลีนตามลำดับ

บุคคลอื่นสามารถใส่ลำดับชั้นนี้ในรายการแบบต้นไม้ได้ เช่น

--------------------------------------------------------
>Label_1                |
    >Label_2            |
        >Field_A        |   10
        >Field_B        |   YES

คำถามแรกของฉันคือ ฉันต้องสร้างตัวแยกวิเคราะห์ภาษาบางรูปแบบเพื่อให้ได้สิ่งนี้หรือไม่ ฉันสามารถใช้ JSON ได้ไหม แม้ว่าฉันไม่จำเป็นต้องสนับสนุนลำดับชั้นที่ซับซ้อน แต่ก็จำเป็นต้องสนับสนุนลำดับชั้นที่ไม่เกิดร่วมกัน (เช่น ปุ่มตัวเลือกเปิด/ปิดการใช้งาน) ฉันรู้สึกว่าดูเหมือนภาษาบางรูปแบบที่มีการแยกวิเคราะห์ด้วยโอเปอเรเตอร์สองสามตัว อย่าเข้าใจฉันผิด ฉันมีพื้นฐานด้านวิศวกรรมเครื่องกล และฉันไม่ใช่โปรแกรมเมอร์ที่มีประสบการณ์

ขอขอบคุณล่วงหน้าสำหรับความคิดเห็นและความช่วยเหลือของคุณ


person GiFou    schedule 27.02.2010    source แหล่งที่มา


คำตอบ (3)


JSON จะเป็นทางเลือกหนึ่ง XML จะเป็นอีกแบบหนึ่ง ตัวอย่างเช่น Microsoft ใช้ XAML (XAML) ภาษาถิ่น) เพื่อจุดประสงค์นี้อย่างแน่นอน และ W3C มีข้อกำหนด (ค่อนข้างใหม่) แพ็คเกจวิดเจ็ต (โดยใช้ ภาษาถิ่นอื่นของ XML) สิ่งเหล่านี้จะช่วยให้คุณใช้ parsers ที่มีอยู่แทนการสร้างอันอื่นตั้งแต่ต้นจนจบ

person Jerry Coffin    schedule 27.02.2010
comment
ดังนั้นฉันเดาว่าฉันกำลังเดินไปในทิศทางที่ถูกต้อง ขอบคุณ - person GiFou; 27.02.2010
comment
เฮ้ ถ้ามันเกี่ยวกับการประกาศ / c++ / ui ทำไมไม่ labs.trolltech.com/blogs/2009/05/13/qt-declarative-ui มีใครนึกถึงบ้างไหม? - person mlvljr; 28.02.2010

สิ่งที่คุณกำลังมองหาเรียกว่า QML

มันเป็นภาษาประกาศ GUI ของ Qt ตาม JSON

ฉันก็สงสัยเหมือนกัน ดังนั้นฉันจึงเริ่มกระทู้ เพื่อรวบรวมข้อมูลเกี่ยวกับ Open Source ภาษา GUI ที่ประกาศ หากคุณกำลังมองหาทางเลือกอื่น ลองดูสิ

person Evan Plaice    schedule 03.06.2010

ฉันแค่ทดสอบ QML สำหรับสภาพแวดล้อมส่วนต่อประสานผู้ใช้จริงในโครงการ C ++ ที่ใช้ Qt และฉันคิดว่ามันทรงพลังมากในฐานะภาษาประกาศ ดังนั้นหากคุณรู้พื้นฐาน Qt บางอย่างแล้ว ก็สามารถใช้ได้

คุณสามารถสร้างอินเทอร์เฟซผู้ใช้ที่ทันสมัย ​​เป็นมืออาชีพ และดูดีได้รวดเร็วมาก และคุณยังสามารถเชื่อมต่อภาษาที่ประกาศกับโค้ด C++ ของคุณได้อย่างง่ายดายและในทางกลับกัน

person msantamaria    schedule 15.07.2010