xtd (تُنطق "تمديد") هو إطار عمل C++17/20 حديث لإنشاء وحدة التحكم وواجهة المستخدم الرسومية (نماذج مثل WinForms) وتطبيقات اختبار الوحدة على Microsoft Windows وApple macOS وLinux وiOS وandroid (*).
(*) انظر قابلية النقل لمزيد من المعلومات.
يتكون xtd من عدة مكتبات.
مكتبة xtd.core هي مكتبات C++17/20 حديثة للفئات والواجهات وأنواع القيم التي توفر الوصول إلى وظائف النظام. إنه الأساس الذي تُبنى عليه تطبيقات ومكونات وعناصر التحكم الخاصة بـ C++.
تحتوي مكتبة xtd.drawing على أنواع تدعم وظيفة رسومات GDI+ الأساسية. تدعم مساحات الأسماء الفرعية وظائف الرسومات المتقدمة ثنائية الأبعاد والمتجهة، ووظائف التصوير المتقدمة، والخدمات المتعلقة بالطباعة والمطبعية. تحتوي مساحة الاسم الفرعية أيضًا على أنواع تعمل على توسيع منطق ورسم واجهة المستخدم في وقت التصميم.
تحتوي مكتبة xtd.forms على فئات لإنشاء التطبيقات المستندة إلى Windows والتي تستفيد بشكل كامل من ميزات واجهة المستخدم الغنية المتوفرة في نظام التشغيل Microsoft Windows وApple macOS وlinux الأساسي.
مكتبة xtd.tunit عبارة عن إطار عمل لاختبار الوحدات لـ C++17/20 الحديث، مستوحى من Microsoft.VisualStudio.TestTools.Cpp.
هذا المشروع هو مشروع مفتوح المصدر. المطورون الذين يشاركون يفعلون ذلك في وقتهم الخاص. ولذلك فمن الصعب تحديد التواريخ الحقيقية.
ولكن يمكنك متابعة تطور التطور. نحن نحافظ على الحالة محدثة.
في كل التزام، يتم إجراء اختبارات البناء والوحدة للتكوينات التالية:
نظام التشغيل | تصحيح | يطلق |
---|---|---|
ويندوز (x64) | ||
ويندوز (x86) | ||
ماك | ||
أوبونتو | ||
دائرة الرقابة الداخلية (**) | ||
أندرويد (**) |
(**) xtd.core وxtd.tunit فقط.
النشر على صفحات جيثب | حالة |
---|---|
نشر الموقع | |
نشر أحدث دليل مرجعي |
نظرًا لأن 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)
آلة حاسبة (على أوبونتو)
ساعة توقيت (على نظام التشغيل Windows)
الرسم (على أوبونتو)
يسرد ملف المؤلفين المساهمين مع معلومات الاتصال. إذا قمت بتقديم مساهمة، يرجى إضافة نفسك إلى القائمة.
مساهماتك هي موضع ترحيب.
ملاحظاتك مهمة لتطور المشروع.
يهدف المشروع التالي إلى تبسيط وتوجيه الطريقة التي يقدم بها المبتدئون مساهمتهم الأولى. إذا كنت تتطلع إلى تقديم مساهمتك الأولى، فاطلع على المشروع أدناه.
المساهمات الأولى
أنت الآن جاهز لتقديم مساهمتك الأولى إلى xtd.
© 2024 جاماسوفت.