AppCUI-rs

AppCUI-rs হৈছে এটা দ্ৰুত, বহু-প্লেটফৰ্ম সমৰ্থিত ৰাষ্ট লাইব্রেৰি, যি আধুনিক, টেক্স্ট-ভিত্তিক ইউজাৰ ইণ্টাৰফেচ (TUI) নির্মাণৰ বাবে ব্যবহৃত হয়, য’ত ধনাত্মক উইজেট, থীম আৰু পূৰ্ণাঙ্গ ইউনিকোড সমৰ্থন আছে—ncurses আৰু আন টাৰ্মিনেল UI ফ্ৰেমৱৰ্কৰ এটা বিকল্প।
✨ বৈশিষ্ট্যাবলী
- [x] বহুল সংখ্যক প্রস্তুত কন্ট্ৰ'ল (বুটন, লেবেল, টেক্স্ট বক্স, চেক বক্স, ৰেডিঅ' বুটন, লিস্ট ভিউ, ট্ৰী ভিউ, কম্ব' বক্স, তাৰিখ/সময় পিকাৰ, ৰং পিকাৰ, ট্যাব, আকৰডিয়ন, আদি)। কন্ট্ৰ'লসমূহৰ সম্পূৰ্ণ তালিকা এতিয়া পাব
- [x] শক্তিশালী লেআউট চিষ্টেম, যাৰ সহায়ত আপুনি কন্ট্ৰ'লসমূহক সম্পূৰ্ণ স্থানাংক, আপেক্ষিক স্থানাংক, ডকিং, এলাইনমেন্ট, এংকৰ বা পিভট পজিচনিং দ্বাৰা স্থানান্তৰ কৰিব পাৰে (বিস্তারিত এতিয়া চাওক)
- [x] মেনু আৰু টুলবাৰ
- [x] বহু-প্লেটফৰ্ম সমৰ্থন (Windows API আৰু Virtual Terminal, Linux ত ncurses, MacOS ত termios)
- [x] পৃষ্ঠভূমিত টাস্কৰ বাবে মাল্টি-থ্ৰেডিং সমৰ্থন
- [x] টাইমাৰ
- [x] মাউচ সমৰ্থন
- [x] ক্লিপব'ৰ্ড সমৰ্থন
- [x] ৰং থীম
- [x] ইউনিকোড অক্ষৰৰ সমৰ্থন
- [x] পূৰ্ব-নিৰ্ধাৰিত ডায়লগ (মেছেজ বক্স, ইনপুট বক্স, ৰং পিকাৰ, সংৰক্ষণ আৰু মুকলি ডায়লগ, ফোল্ডাৰ নেভিগেটৰ, আদিৰে)
- [x] সত্যিকাৰ ৰং সমৰ্থন (প্ৰতি পিক্সেল ২৪ বিট) যিসকল টাৰ্মিনেলে সমৰ্থন কৰে।
📸 স্ক্ৰীনশ্বট

👉 সমস্ত কন্ট্ৰ'লৰ সম্পূৰ্ণ ডেম' চাবলৈ গেলাৰী চাওক!
🖥️ বেকএণ্ডসমূহ
AppCUI-এ ব্যৱহৃত অপাৰেটিং চিষ্টেম অনুসৰি বিভিন্ন বেকএণ্ড সমৰ্থন কৰে:
- Windows Console - Win32 তলৰ স্তৰৰ API-ৰ আধাৰত, পৰম্পৰাগত উইন্ডোজ কনচ'লৰ বাবে ডিজাইন কৰা
- Windows VT - ANSI অনুক্ৰমৰ আধাৰত, আধুনিক উইন্ডোজ ভাৰ্চুৱেল টাৰ্মিনেলৰ বাবে ডিজাইন কৰা
- NCurses - লিনাক্স পৰিৱেশৰ বাবে NCurses API-ৰ আধাৰত
- Termios - ANSI অনুক্ৰম আৰু MAC OSX-ৰ বাবে তলৰ স্তৰৰ API-ৰ আধাৰত
- Web Terminal - ৱেবত কাৰ্যকৰী হিচাপে (webgl-ৰ আধাৰত) ডিজাইন কৰা
- CrossTerm - crossterm
crate-ৰ আধাৰত, কিন্তু এটা ফিচাৰ ফ্লেগৰ জৰিয়তে সক্ৰিয় কৰা হয়
🚀 দ্ৰুত আৰম্ভণি
আপোনাৰ 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(()) }
rust use appcui::prelude::*;পিছতcargo runব্যৱহাৰ কৰি প্ৰজেক্টটো চলাওক। আপোনাৰ এটা উইণ্ডো দেখিবলৈ পোৱা উচিত যাৰ শিৰোনামTestআৰু কেন্দ্ৰতHello World !লিখা আছে।🧪 উদাহৰণসমূহ
AppCUI-rs-এ আৰম্ভ কৰিবলৈ সহায় কৰিবলৈ কেইবাটাও উদাহৰণৰ সৈতে আহে। আপুনি এইবোৰ examples ফোল্ডাৰত পাব, ইয়াত অন্তর্ভুক্ত:
- গেমছ যেনে Tic Tac Toe, Snake, Flappy Bird, Minesweeper, Ram it, PacMan, Chees, Connect Four, 2048 অথবা Tetris
- ইউটিলিটিজ যেনে Calculator, CSV Viewer, Temperature Converter অথবা Timer
- এনিমেশ্যনছ যেনে Matrix, Fractals অথবা Spiral
- কন্ট্ৰোলছ/উইজেটছ যেনে Button, CheckBox, ComboBox, DatePicker, ListView, TreeView আৰু বহুতো।
- ডায়লগছ যেনে Notification অথবা Input
🛠️ এটা অধিক জটিল উদাহৰণ
এটা উদাহৰণ যি এটা বুটাম থকা এটা উইণ্ডো সৃষ্টি কৰে যি টিপিলে এটা কাউণ্টাৰ বৃদ্ধি পায়।
// 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
fn main() -> Result<(), appcui::system::Error> { // create a new application let mut a = App::new().build()?; // add a new window (of type CounterWindow) to the application a.add_window(CounterWindow::new()); // Run AppCUI framework (this wil start the window loop and messaage passing) a.run(); Ok(()) } ``
🛣️ ৰোডমেপ
- [x] বেছিক উইজেটছ আৰু উইণ্ড'জ, লিনাক্স আৰু মেকঅছৰ বাবে সমৰ্থন
- [x] ৱেবGL সমৰ্থন
- [ ] ওপেনGL / SDL / ভালকান সমৰ্থন
- [ ] ক'ড হাইলাইটিঙৰ বাবে টেক্সটএৰিয়া সমৰ্থন
🤝 অৱদান
অৱদান, সমস্যাবোৰ, আৰু বৈশিষ্ট্য অনুৰোধ স্বাগতম! আৰম্ভ কৰিবলৈ CONTRIBUTING.md চাওক।
আলোচনাত যোগদান কৰক GitHub Discussions ত।
--- Tranlated By Open Ai Tx | Last indexed: 2026-02-09 ---