xtd (diucapkan "extend") adalah kerangka kerja C++17/20 modern untuk membuat konsol, GUI (bentuk seperti WinForms) dan aplikasi pengujian unit di Microsoft Windows, Apple macOS, Linux, iOS, dan android (*).
(*) Lihat portabilitas untuk informasi lebih lanjut.
xtd terdiri dari beberapa perpustakaan.
Pustaka xtd.core adalah pustaka kelas, antarmuka, dan tipe nilai C++17/20 modern yang menyediakan akses ke fungsionalitas sistem. Ini adalah fondasi di mana aplikasi, komponen, dan kontrol c++ dibangun.
Pustaka xtd.drawing berisi tipe yang mendukung fungsionalitas grafis GDI+ dasar. Namespace anak mendukung fungsionalitas grafis dua dimensi dan vektor tingkat lanjut, fungsionalitas pencitraan tingkat lanjut, serta layanan terkait pencetakan dan tipografi. Namespace anak juga berisi tipe yang memperluas logika dan gambar antarmuka pengguna waktu desain.
Pustaka xtd.forms berisi kelas untuk membuat aplikasi berbasis Windows yang memanfaatkan sepenuhnya fitur antarmuka pengguna yang kaya yang tersedia di sistem operasi dasar Microsoft Windows, Apple macOS, dan linux.
Pustaka xtd.tunit adalah kerangka pengujian unit untuk C++17/20 modern, yang terinspirasi oleh Microsoft.VisualStudio.TestTools.Cpp.
Proyek ini adalah proyek sumber terbuka. Pengembang yang berpartisipasi melakukannya pada waktu mereka sendiri. Oleh karena itu sulit untuk menetapkan tanggal sebenarnya.
Namun Anda bisa mengikuti evolusi perkembangannya. Kami terus memperbarui statusnya.
Pada setiap penerapan, pengujian build dan unit dilakukan untuk konfigurasi berikut:
Sistem operasi | Men-debug | Melepaskan |
---|---|---|
jendela (x64) | ||
jendela (x86) | ||
macOS | ||
Ubuntu | ||
iOS(**) | ||
Android (**) |
(**) xtd.core dan xtd.tunit saja.
Terapkan ke Halaman GitHub | status |
---|---|
Penerapan situs web | |
Penerapan panduan referensi terbaru |
Karena xtd dikelola oleh proyek Kanban, jumlah terbitan terbuka bisa sangat besar. Tabel di bawah memberikan gambaran yang lebih jelas tentang jumlah bug/pertanyaan dan peningkatan yang terbuka.
Masalah | Membuka | Tertutup |
---|---|---|
Bug / Pertanyaan dari pengguna | ||
xtd 0.1.0 - Peningkatan / Pengembangan (*) | ||
xtd 0.1.1 - Peningkatan / Pengembangan | ||
xtd 0.2.0 - Peningkatan / Pengembangan | ||
xtd 0.3.0 - Peningkatan / Pengembangan | ||
xtd 0.4.0 - Peningkatan / Pengembangan | ||
xtd 1.0.0 - Peningkatan / Pengembangan |
(*) Hanya ada satu peningkatan untuk xtd 0.1.0, karena manajemen proyek belum tersedia.
Aplikasi klasik pertama '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! " );
}
atau sederhananya
# 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)
Buka "Command Prompt" atau "Terminal". Arahkan ke folder yang berisi proyek dan ketik yang berikut ini:
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 {});
}
atau sederhananya
# 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)
Buka "Command Prompt" atau "Terminal". Arahkan ke folder yang berisi proyek dan ketik yang berikut ini:
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 ();
}
atau tanpa pembantu
# 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)
Buka "Command Prompt" atau "Terminal". Arahkan ke folder yang berisi proyek dan ketik yang berikut ini:
xtdc run
kapal penyapu ranjau (di Windows)
game_of_life (di macOS)
xtdc-gui - Membuat proyek baru (di macOS)
kalkulator (di Ubuntu)
stopwatch (di Windows)
lukisan (di Ubuntu)
File penulis mencantumkan kontributor bersama dengan informasi kontak. Jika Anda memberikan kontribusi, silakan tambahkan diri Anda ke dalam daftar.
Kontribusi Anda diterima.
Masukan Anda penting untuk evolusi proyek.
Proyek berikut ini bertujuan untuk menyederhanakan dan memandu cara pemula memberikan kontribusi pertama mereka. Jika Anda ingin memberikan kontribusi pertama Anda, lihat proyek di bawah ini.
Kontribusi Pertama
Sekarang Anda siap memberikan kontribusi pertama Anda ke xtd.
© 2024 Gammasoft.