LTK adalah perangkat kecil untuk menulis UI web di PyScript. Untuk penjelasan tentang PyScript dan LTK, lihat YouTube.
Sebagai contoh, lihat:
LTK diimplementasikan sebagai perpustakaan Python deklaratif dan memanfaatkan jQuery
untuk operasi DOM.
Instal LTK dari pypi:
python3 -m pip install pyscript-ltk
import ltk
ltk . Text ( "Hello World" ). appendTo ( ltk . body )
Untuk memulai LTK, kami menyarankan Anda mencobanya di pyscript.com:
Jenis widget baru dibuat dengan membuat subkelas ltk.Widget
:
class HBox ( Widget ):
classes = [ "ltk-hbox" ]
Secara default, widget dibuat sebagai elemen div
DOM. Anda dapat memilih tag lain:
class Preformatted ( Widget ):
classes = [ "ltk-pre" ]
tag = "pre"
Untuk membuat UI, elemen dibuat secara deklaratif:
ltk . Table (
ltk . TableRow (
ltk . TableHeader ( "header1" )
ltk . TableHeader ( "header2" )
),
[
ltk . TableRow (
ltk . TableData ( value1 ),
ltk . TableData ( value2 ),
)
for value1 , value2 in data
],
)
Widget ditambahkan ke widget lain dengan menggunakan panggilan append
dan appendTo
jQuery
:
ltk . body . append (
ltk . Table (...). element
)
container = ltk . VBox (...)
ltk . H1 ( "This is a header" ). appendTo ( container )
Ketika widget LTK dibuat, elemen jQuery yang sesuai dilampirkan padanya di konstruktor ltk.Widget.__init__
. Ia menggunakan nilai tag
yang ditentukan oleh kelas yang mendeklarasikannya dan elemen yang dibangun disebut sebagai element
. Karena panggilan append
adalah fungsi JavaScript, yang diimplementasikan oleh jQuery, kami tidak meneruskan widget LTK secara langsung, namun meneruskan element
untuk ditambahkan ke DOM.
Widget dapat ditata menggunakan tiga pendekatan berbeda:
css
jQuery
: ltk . Text ( "Error: Flux capacitor low!" )
. css ( "background-color" , "red" )
. css ( "color" , "white" )
. css ( "padding" , 8 )
dict
untuk memudahkan berbagi gaya: error = {
"background-color" : "red" ,
"color" : "white" ,
"padding" : 8 ,
}
ltk . Text ( "Error: Flux capacitor low!" , error )
addClass
jQuery
: ltk . Text ( "Some text" ). addClass (" my - special - text )
Style sheet eksternal harus memiliki aturan berikut:
. ltk-text {
font-family : Arial;
}
. my-special-text {
font-family : Courier;
background-color : red;
color : white;
padding : 8 px ;
}
Stylesheet eksternal dapat disertakan dalam index.html
asli atau dimasukkan saat runtime dari Python menggunakan:
ltk . inject_style ( "https://example.org/awesome_styles.css" )
Penangan acara dilampirkan menggunakan mekanisme jQuery
.
def buy ( event ):
purchase (...)
ltk . Card ( "Buy Now" ). on ( "click" , ltk . proxy ( buy ))
Anda juga dapat menggunakan dekorator yang lebih deklaratif:
@ ltk . callback
def buy ( event ):
purchase (...)
ltk . Card ( "Buy Now" ). on ( "click" , buy )
Lihat wastafel dapur LTK atau jelajahi folder examples
LTK tercakup dalam Lisensi Apache:
Lisensi Apache adalah lisensi perangkat lunak sumber terbuka yang permisif.
Hal ini memungkinkan pengguna untuk secara bebas menggunakan, memodifikasi, dan mendistribusikan perangkat lunak (termasuk untuk tujuan komersial).
Versi modifikasi dapat didistribusikan tanpa harus merilis kode sumbernya. Meskipun perubahan kode sumber harus didokumentasikan.
Lisensi memerlukan versi modifikasi untuk mempertahankan lisensi Apache dan pemberitahuan hak cipta.
Perangkat lunak ini disediakan oleh penulis "sebagaimana adanya" tanpa jaminan.
Pengguna tidak diberikan hak paten oleh kontributor, namun kontributor tidak dapat mencabut pemberian paten atas kontribusi sebelumnya.
Lisensi ini tidak memerlukan karya turunan untuk mengadopsi lisensi Apache. Padahal hal ini didorong untuk konsistensi.
Jika Anda tidak pernah menjalankan setuptools, twine, dll, di mesin Anda, lakukan ini:
python3 -m pip install --user --upgrade setuptools wheel twine build
Untuk membuat build, pertama-tama tambahkan versinya di pyproject.toml
:
[ project ]
name = "pyscript-ltk"
version = "0.1.22"
Kemudian buat paket menjadi distribusi sumber dan roda Python:
python3 -m build
Kemudian verifikasi apakah build berfungsi untuk pypi:
twine check dist/*
Kemudian unggah ke lingkungan pengujian pypi:
twine upload --repository pypitest dist/*
Terakhir, jika unggahan tes pypi tampaknya berfungsi dengan baik, jalankan:
twine upload dist/*
Jika Anda mendapatkan error bahwa versi tertentu sudah ada, periksa isi folder dist
.