GoField — hatalı olabilen satır
Beş alanlı bir formun tepesinde "girdinizi kontrol edin" diyen tek bir satır, hangi alan olduğunu söylemez. İnsanlara kaydı yarıda bıraktıran tek şey budur.
var name_field := GoField.make("Karakter adı", GoStyle.line_edit("2-12"), "Sonradan değiştirilemez")
name_field.set_error("Bu ad alınmış") # sunucu hayır dedi
name_field.clear_error()
Bir hata görünürken ipucu gizlenir, böylece satır bir satır büyüyüp altındaki her şeyi aşağı itmez; hata yazısı da denetimin erişilebilir adına eklenir — kırmızıyı göremeyen birine tek başına kırmızı bir kenarlık hiçbir şey söylemez.
GoStyle.field() durağan sürümdür: etiket, denetim, ipucu, hata durumu yok. Hiçbir şeyin ters
gidemeyeceği yerde fabrikayı, bir sunucunun reddedebileceği her şey için düğümü kullanın.
GoInputGroup — düğmesine kaynaklanmış bir girdi
GoInputGroup.make(GoStyle.line_edit("Mesaj"), {"suffix": GoStyle.icon_button(&"send", send)})
GoInputGroup.make(GoStyle.line_edit("Ad"), {"prefix_icon": &"search"})
Çözdüğü şey köşelerdir. Ortada buluşan iki yuvarlak biçim sıkışmış görünür, varsayılan boşluk da onları iki ayrı nesne gibi okutur. Dış köşeler yuvarlak kalır, birbirine değenler köşeli olur — her düğme durumunda, yoksa grup basıldığı anda ikiye ayrılır. Pahlı kaplamalarda köşe alanları hiç yoktur; orada onlara dokunmaz ve köşeli yüzler temizce buluşur.
GoCombobox — arama yapan bir seçici
On girdinin altında GoStyle.select() daha iyidir: bir dokunuş eksik ve listenin tamamı görünür.
Otuzu geçtiğinde göz gezdirmek zahmete dönüşür.
var picker := GoCombobox.make(server_names, 0, "Bir sunucu seçin")
picker.picked.connect(func(i: int) -> void: connect_to(servers[i]))
GoCodeInput — kupon ve hediye kodları
Bir kod, yazılmaktan çok daha sık bir mesajdan yapıştırılır. On iki gerçek alan, yapıştırmayı ilk hücrede
bozar ve karakterleri bir IME'ye kaptırırdı; bu yüzden yazıyı gizli tek bir alan alır, hücreler ise çizilir.
ABCD-EFGH-IJKL girerken tirelerini bırakır.
var coupon := GoCodeInput.make(12, 4)
coupon.completed.connect(func(code: String) -> void: server.redeem(code))
coupon.set_error("Zaten kullanılmış")
GoTable — sıralanabilir başlıklar, seçilebilir satırlar
var board := GoTable.make(
[{"text": "Sıra", "width": 56}, {"text": "Ad"}, {"text": "Puan", "numeric": true}], rows)
board.row_selected.connect(func(i: int) -> void: open_profile(rows[i]))
numeric: true verin, yoksa sıralama tersine döner. Yazı olarak karşılaştırıldığında
"9124", "91240"'ı geçer — puanların, altının ve hasarın hepsinde basamak sayısı karışıktır.
row_selected, sıralanmış konumu değil, özgün dizinizdeki indisi verir. Sıralama yönü yalnızca
renkle değil bir simgeyle gösterilir ve kimse tek bir hücreyi tutturmak zorunda kalmasın diye satırların
tamamı basılabilir. GoStyle.table() salt okunur ızgara olarak kalır.
GoPagination — sayfalar ya da bir Daha fazla satırı
var pager := GoPagination.make(1, 12, func(page: int) -> void: load_mail(page))
var more := GoPagination.more(load_next) # mobil dostu değişke
Sayılar fareye göre bir arayüzdür; telefonda Daha fazla satırı daha iyi okunur. Geçerli sayfa pencerenin ortasında kalır, böylece ileriye basmak bütün sayıları yeniden karıştırmaz. Toplamın 0 olması "bilinmiyor" demektir ve yalnızca oklar çizilir — kendisine verilmeyen bir sayfa sayısını uydurmaz.