xtd (ออกเสียงว่า "extend") เป็นเฟรมเวิร์ก C++17/20 สมัยใหม่สำหรับสร้างคอนโซล, GUI (รูปแบบเช่น WinForms) และแอปพลิเคชันทดสอบหน่วยบน Microsoft Windows, Apple macOS, Linux, iOS และ android (*)
(*) ดูการพกพาสำหรับข้อมูลเพิ่มเติม
xtd ประกอบด้วยไลบรารีหลายแห่ง
ไลบรารี xtd.core เป็นไลบรารี C++17/20 ที่ทันสมัยของคลาส อินเทอร์เฟซ และประเภทค่าที่ให้การเข้าถึงฟังก์ชันการทำงานของระบบ เป็นรากฐานสำหรับการสร้างแอปพลิเคชัน ส่วนประกอบ และการควบคุม c++
ไลบรารี xtd.writing มีประเภทที่รองรับฟังก์ชันกราฟิก GDI+ พื้นฐาน เนมสเปซลูกรองรับฟังก์ชันกราฟิกสองมิติและเวกเตอร์ขั้นสูง ฟังก์ชันการสร้างภาพขั้นสูง และบริการที่เกี่ยวข้องกับการพิมพ์และการพิมพ์ เนมสเปซลูกยังมีประเภทที่ขยายตรรกะและรูปวาดของอินเทอร์เฟซผู้ใช้เวลาออกแบบ
ไลบรารี xtd.forms ประกอบด้วยคลาสสำหรับการสร้างแอปพลิเคชันบน Windows ที่ใช้ประโยชน์จากคุณสมบัติอินเทอร์เฟซผู้ใช้ที่หลากหลายซึ่งมีอยู่ในระบบปฏิบัติการ Microsoft Windows, Apple macOS และ linux
ไลบรารี xtd.tunit เป็นเฟรมเวิร์กการทดสอบหน่วยสำหรับ C++17/20 สมัยใหม่ ซึ่งได้รับแรงบันดาลใจจาก Microsoft.VisualStudio.TestTools.Cpp
โครงการนี้เป็นโครงการโอเพ่นซอร์ส นักพัฒนาที่เข้าร่วมจะต้องดำเนินการตามเวลาของตนเอง ดังนั้นจึงเป็นการยากที่จะแก้ไขวันที่จริง
แต่คุณสามารถติดตามวิวัฒนาการของการพัฒนาได้ เรารักษาสถานะให้ทันสมัยอยู่เสมอ
ในแต่ละคอมมิต การทดสอบบิลด์และยูนิตจะดำเนินการสำหรับการกำหนดค่าต่อไปนี้:
ระบบปฏิบัติการ | ดีบัก | ปล่อย |
---|---|---|
หน้าต่าง (x64) | ||
วินโดวส์ (x86) | ||
ระบบปฏิบัติการ macOS | ||
อูบุนตู | ||
ไอโอเอส (**) | ||
แอนดรอยด์ (**) |
(**) xtd.core และ xtd.tunit เท่านั้น
ปรับใช้กับเพจ GitHub | สถานะ |
---|---|
การปรับใช้เว็บไซต์ | |
การปรับใช้คู่มืออ้างอิงล่าสุด |
เนื่องจาก xtd ได้รับการจัดการโดยโครงการ Kanban จำนวนปัญหาที่เปิดอยู่จึงมีค่อนข้างมาก ตารางด้านล่างให้มุมมองที่ชัดเจนยิ่งขึ้นเกี่ยวกับจำนวนข้อบกพร่อง/คำถามและการปรับปรุงที่เปิดอยู่
ปัญหา | เปิด | ปิด |
---|---|---|
ข้อบกพร่อง / คำถามจากผู้ใช้ | ||
xtd 0.1.0 - การปรับปรุง / การพัฒนา (*) | ||
xtd 0.1.1 - การปรับปรุง / การพัฒนา | ||
xtd 0.2.0 - การปรับปรุง / การพัฒนา | ||
xtd 0.3.0 - การปรับปรุง / การพัฒนา | ||
xtd 0.4.0 - การปรับปรุง / การพัฒนา | ||
xtd 1.0.0 - การปรับปรุง / การพัฒนา |
(*) มีการปรับปรุงเพียงครั้งเดียวสำหรับ xtd 0.1.0 เนื่องจากยังไม่มีการจัดการโครงการ
แอปพลิเคชั่นแรกสุดคลาสสิค 'Hello World'
# include < xtd/xtd >
using namespace xtd ;
auto main () -> int {
console::background_color (console_color::blue);
console::foreground_color (console_color::white);
console::write_line ( " Hello, World! " );
}
หรือเพียงแค่
# include < xtd/xtd >
using namespace xtd ;
auto main () -> int {
console::out << background_color (console_color::blue) << foreground_color (console_color::white) << " Hello, World! " << environment::new_line;
}
cmake_minimum_required ( VERSION 3.20)
project (hello_world_console)
find_package (xtd REQUIRED)
add_sources(hello_world_console.cpp)
target_type(CONSOLE_APPLICATION)
เปิด "พร้อมรับคำสั่ง" หรือ "เทอร์มินัล" นำทางไปยังโฟลเดอร์ที่มีโครงการและพิมพ์ดังต่อไปนี้:
xtdc run
# include < xtd/xtd >
using namespace xtd ::forms ;
class main_form : public form {
public:
main_form () {
text ( " Hello world (message_box) " );
button1. location ({ 10 , 10 });
button1. parent (* this );
button1. text ( " &Click me " );
button1. click += [] {
message_box::show ( " Hello, World! " );
};
}
private:
button button1;
};
auto main () -> int {
application::run (main_form {});
}
หรือเพียงแค่
# include < xtd/xtd >
auto main () -> int {
auto main_form = xtd::forms::form::create ( " Hello world (message_box) " );
auto button1 = xtd::forms::button::create (main_form, " &Click me " , { 10 , 10 });
button1. click += [] { xtd::forms::message_box::show ( " Hello, World! " );};
xtd::forms::application::run (main_form);
}
cmake_minimum_required ( VERSION 3.20)
project (hello_world_forms)
find_package (xtd REQUIRED)
add_sources(hello_world_forms.cpp)
target_type(GUI_APPLICATION)
เปิด "พร้อมรับคำสั่ง" หรือ "เทอร์มินัล" นำทางไปยังโฟลเดอร์ที่มีโครงการและพิมพ์ดังต่อไปนี้:
xtdc run
# include < xtd/xtd >
using namespace xtd ;
using namespace xtd ::tunit ;
namespace unit_tests {
class test_class_ (hello_world_test) {
void test_method_ (create_string_from_literal) {
auto s = string { " Hello, World! " };
valid::are_equal ( 13 , s. size ());
assert::are_equal ( " Hello, World! " , s);
}
void test_method_ (create_string_from_chars) {
auto s = string { ' H ' , ' e ' , ' l ' , ' l ' , ' o ' , ' , ' , ' ' , ' W ' , ' o ' , ' r ' , ' l ' , ' d ' , ' ! ' };
valid::are_equal ( 13 , s. size ());
string_assert::starts_with ( " Hello, " , s);
string_assert::ends_with ( " World! " , s);
}
};
}
auto main () -> int {
return console_unit_test (). run ();
}
หรือไม่มีผู้ช่วยเหลือ
# include < xtd/xtd >
using namespace xtd ;
using namespace xtd ::tunit ;
namespace unit_tests {
class hello_world_test ;
auto hello_world_test_class_attr = test_class_attribute { " unit_tests::hello_world_test " };
class hello_world_test : public test_class {
test_method_attribute create_string_from_literal_attr { " create_string_from_literal " , * this , &hello_world_test::create_string_from_literal};
void create_string_from_literal () {
auto s = string { " Hello, World! " };
valid::are_equal ( 13 , s. size ());
assert::are_equal ( " Hello, World! " , s);
}
test_method_attribute create_string_from_chars_attr { " create_string_from_chars " , * this , &hello_world_test::create_string_from_chars};
void create_string_from_chars () {
auto s = string { ' H ' , ' e ' , ' l ' , ' l ' , ' o ' , ' , ' , ' ' , ' W ' , ' o ' , ' r ' , ' l ' , ' d ' , ' ! ' };
valid::are_equal ( 13 , s. size ());
string_assert::starts_with ( " Hello, " , s);
string_assert::ends_with ( " World! " , s);
}
};
}
auto main () -> int {
return console_unit_test (). run ();
}
cmake_minimum_required ( VERSION 3.20)
project (hello_world_test)
find_package (xtd REQUIRED)
add_sources(hello_world_test.cpp)
target_type(TEST_APPLICATION)
เปิด "พร้อมรับคำสั่ง" หรือ "เทอร์มินัล" นำทางไปยังโฟลเดอร์ที่มีโครงการและพิมพ์ดังต่อไปนี้:
xtdc run
เรือกวาดทุ่นระเบิด (บน Windows)
game_of_life (บน macOS)
xtdc-gui - สร้างโครงการใหม่ (บน macOS)
เครื่องคิดเลข (บน Ubuntu)
นาฬิกาจับเวลา (บน Windows)
จิตรกรรม (บน Ubuntu)
ผู้เขียนจะยื่นรายชื่อผู้ร่วมให้ข้อมูลพร้อมข้อมูลติดต่อ หากคุณมีส่วนร่วม โปรดเพิ่มตัวเองเข้าไปในรายการ
การมีส่วนร่วมของคุณยินดีต้อนรับ
ความคิดเห็นของคุณมีความสำคัญต่อการพัฒนาโครงการ
โครงการต่อไปนี้มีจุดมุ่งหมายเพื่อลดความซับซ้อนและเป็นแนวทางในวิธีที่ผู้เริ่มต้นมีส่วนร่วมครั้งแรก หากคุณกำลังมองหาการบริจาคครั้งแรก โปรดดูโครงการด้านล่างนี้
ผลงานครั้งแรก
ตอนนี้คุณพร้อมที่จะบริจาคครั้งแรกให้กับ xtd แล้ว
© 2024 Gammasoft.