Web Analytics

AppCUI-rs

⭐ 376 stars Hindi by gdt050579

🌐 भाषा

AppCUI-rs

`` ⯈ 𝗔𝗽𝗽𝗖𝗨𝗜-𝗿𝘀 🖳


Windows बिल्ड स्थिति
Linux बिल्ड स्थिति
macOS बिल्ड स्थिति
कोड कवरेज
लाइसेंस
Crates.io
Docs.rs
Gallery

AppCUI-rs एक तेज, क्रॉस-प्लेटफॉर्म Rust लाइब्रेरी है जो आधुनिक, टेक्स्ट-आधारित यूजर इंटरफेस (TUI) बनाने के लिए है, जिसमें समृद्ध विजेट, थीम, और पूर्ण यूनिकोड सपोर्ट है—यह ncurses और अन्य टर्मिनल UI फ्रेमवर्क का विकल्प है।

✨ विशेषताएँ

  • [x] कई आउट-ऑफ-द-बॉक्स कंट्रोल्स (बटन, लेबल, टेक्स्ट बॉक्स, चेक बॉक्स, रेडियो बटन, लिस्ट व्यू, ट्री व्यू, कॉम्बो बॉक्स, दिनांक/समय पिकर, रंग पिकर, टैब्स, एकॉर्डियन्स आदि)। सभी कंट्रोल्स की पूरी सूची यहाँ देखी जा सकती है
  • [x] शक्तिशाली लेआउट सिस्टम जो आपको कंट्रोल्स को पूर्ण निर्देशांक, सापेक्ष निर्देशांक, डॉकिंग, अलाइनमेंट, एंकर, या पिवट पोजिशनिंग द्वारा स्थित करने देता है (और देखें यहाँ)
  • [x] मेन्यू और टूलबार
  • [x] मल्टी-प्लेटफॉर्म सपोर्ट (Windows API और वर्चुअल टर्मिनल के जरिए, Linux में ncurses के जरिए, macOS में termios के जरिए)
  • [x] बैकग्राउंड टास्क के लिए मल्टी-थ्रेडिंग सपोर्ट
  • [x] टाइमर
  • [x] माउस सपोर्ट
  • [x] क्लिपबोर्ड सपोर्ट
  • [x] रंग थीम्स
  • [x] यूनिकोड कैरेक्टर का समर्थन
  • [x] पूर्व-निर्धारित डायलॉग (संदेश बॉक्स, इनपुट बॉक्स, रंग पिकर, सेव व ओपन डायलॉग, फोल्डर नेविगेटर आदि)
  • [x] टर्मिनल के लिए ट्रू-कलर सपोर्ट (24 बिट प्रति पिक्सेल) जो इसे सपोर्ट करते हैं।

📸 स्क्रीनशॉट्स

👉 गैलरी देखें, सभी कंट्रोल्स के पूर्ण डेमो के लिए!

🖥️ बैकएंड्स

AppCUI विभिन्न ऑपरेटिंग सिस्टम के अनुसार कई बैकएंड्स को सपोर्ट करता है:

  • विंडोज़ कंसोल - Win32 लो-लेवल API पर आधारित, पारंपरिक विंडोज़ कंसोल के लिए डिज़ाइन किया गया
  • विंडोज़ VT - ANSI सीक्वेंस पर आधारित, आधुनिक विंडोज़ वर्चुअल टर्मिनलों के लिए डिज़ाइन किया गया
  • एनकर्सेस - लिनक्स परिवेशों के लिए NCurses API पर आधारित
  • टर्मियोस - macOS के लिए ANSI सीक्वेंस और लो-लेवल API पर आधारित
  • वेब टर्मिनल - वेब कार्यान्वयन के लिए डिज़ाइन किया गया (WebGL पर आधारित)
  • क्रॉसटर्म - crossterm क्रेट पर आधारित, फीचर फ्लैग के माध्यम से सक्षम
समर्थित बैकएंड्स के बारे में अधिक जानकारी यहाँ पाई जा सकती है

🚀 त्वरित प्रारंभ

अपने Cargo.toml में निम्नलिखित जोड़ें:

toml [dependencies] appcui = "*"
फिर एक नया Rust प्रोजेक्ट बनाएं और निम्नलिखित कोड जोड़ें:

rust use appcui::prelude::*;

fn main() -> Result<(), appcui::system::Error> { let mut app = App::new().build()?; let mut win = Window::new( "Test", LayoutBuilder::new().alignment(Alignment::Center).width(30).height(9).build(), window::Flags::Sizeable, ); win.add(Label::new( "Hello World !", LayoutBuilder::new().alignment(Alignment::Center).width(13).height(1).build(), )); app.add_window(win); app.run(); Ok(()) }

या proc-macros का उपयोग करके एक अधिक संक्षिप्त संस्करण:

rs use appcui::prelude::*;

fn main() -> Result<(), appcui::system::Error> { let mut app = App::new().build()?; let mut win = window!("Test,a:c,w:30,h:9"); win.add(label!("'Hello World !',a:c,w:13,h:1")); app.add_window(win); app.run(); Ok(()) }

फिर प्रोजेक्ट को cargo run के साथ चलाएँ। आपको एक विंडो दिखाई देगी जिसका शीर्षक Test है और केंद्र में Hello World ! लिखा होगा।

🧪 उदाहरण

AppCUI-rs कुछ उदाहरणों के सेट के साथ आता है, जो आपको शुरुआत करने में मदद करते हैं। आप इन्हें examples फ़ोल्डर में पा सकते हैं, जिनमें शामिल हैं:

🛠️ एक अधिक जटिल उदाहरण

एक उदाहरण जो एक विंडो बनाता है जिसमें एक बटन होता है, जिसे दबाने पर काउंटर बढ़ता है।

rust use appcui::prelude::*;

// Create a window that handles button events and has a counter #[Window(events = ButtonEvents)] struct CounterWindow { counter: i32 }

impl CounterWindow { fn new() -> Self { let mut w = Self { // set up the window title and position base: window!("'Counter window',a:c,w:30,h:5"), // initial counter is 1 counter: 1 }; // add a single button with the caption "1" (like the counter) w.add(button!("'1',d:b,w:20")); w } } impl ButtonEvents for CounterWindow { // When the button is pressed, this function will be called // with the handle of the button that was pressed // Since we only have one button, we don't need to store its handle // in the struct, as we will receive the handle via the on_pressed method fn on_pressed(&mut self, handle: Handle