🖼️ gui - GUI Framework
Window, Button, Label, TextField, Layout, Events
169
Fonksiyon
1,636
Satır
54 KB
Boyut
🚀 Hızlı Başlangıç
içe_aktar gui
// Uygulama oluştur
değişken app = gui.app_create("Merhaba BERK")
// Window
değişken pencere = gui.window_create("İlk GUI Uygulamam", 400, 300)
// Widgets
değişken label = gui.label_create("Merhaba Dünya!")
değişken button = gui.button_create("Tıkla Beni")
değişken text_field = gui.textfield_create()
// Event handler
gui.button_on_click(button, fonksiyon() yap
değişken metin = gui.textfield_get_text(text_field)
gui.label_set_text(label, "Merhaba " + metin + "!")
son)
// Layout
değişken vbox = gui.vbox_create()
gui.vbox_add(vbox, label)
gui.vbox_add(vbox, text_field)
gui.vbox_add(vbox, button)
gui.window_set_content(pencere, vbox)
gui.window_show(pencere)
gui.app_run(app)
📚 Widget'lar
- Containers: Window, VBox, HBox, Grid, Stack, ScrollArea
- Input: Button, TextField, TextArea, Checkbox, RadioButton, Slider, ComboBox
- Display: Label, Image, ProgressBar, Separator
- Menus: MenuBar, Menu, MenuItem, ContextMenu
- Dialogs: MessageBox, FileDialog, ColorPicker
- Advanced: TabView, TreeView, TableView, Canvas
💡 Örnekler
Todo Uygulaması
içe_aktar gui, collections
değişken app = gui.app_create("Todo App")
değişken pencere = gui.window_create("Yapılacaklar", 600, 400)
// Veri modeli
değişken todos = collections.vec_new()
// UI elemanları
değişken text_field = gui.textfield_create()
gui.textfield_set_placeholder(text_field, "Yeni görev...")
değişken add_button = gui.button_create("Ekle")
değişken todo_list = gui.vbox_create()
// "Ekle" butonu handler
gui.button_on_click(add_button, fonksiyon() yap
değişken text = gui.textfield_get_text(text_field)
eğer text.uzunluk() > 0 ise yap
// Todo item oluştur
değişken item_box = gui.hbox_create()
değişken checkbox = gui.checkbox_create(text)
değişken delete_btn = gui.button_create("Sil")
// Checkbox handler
gui.checkbox_on_toggle(checkbox, fonksiyon(checked) yap
eğer checked ise yap
gui.checkbox_set_style(checkbox, "text-decoration: line-through")
son değilse yap
gui.checkbox_set_style(checkbox, "")
son
son)
// Delete handler
gui.button_on_click(delete_btn, fonksiyon() yap
gui.vbox_remove(todo_list, item_box)
son)
gui.hbox_add(item_box, checkbox)
gui.hbox_add(item_box, delete_btn)
gui.vbox_add(todo_list, item_box)
gui.textfield_set_text(text_field, "")
son
son)
// Layout
değişken input_box = gui.hbox_create()
gui.hbox_add(input_box, text_field)
gui.hbox_add(input_box, add_button)
değişken main_box = gui.vbox_create()
gui.vbox_add(main_box, input_box)
gui.vbox_add(main_box, gui.separator_create())
gui.vbox_add(main_box, todo_list)
gui.window_set_content(pencere, main_box)
gui.window_show(pencere)
gui.app_run(app)
Image Viewer
içe_aktar gui, image, fs
değişken app = gui.app_create("Image Viewer")
değişken pencere = gui.window_create("Resim Görüntüleyici", 800, 600)
// UI
değişken image_widget = gui.image_create()
değişken open_button = gui.button_create("Resim Aç")
değişken prev_button = gui.button_create("◀ Önceki")
değişken next_button = gui.button_create("Sonraki ▶")
değişken images = []
değişken current_index = 0
fonksiyon load_image(path: yazı) yap
değişken img = image.load(path)
gui.image_set_data(image_widget, img)
gui.window_set_title(pencere, "Image Viewer - " + path)
son
// Dosya seçici
gui.button_on_click(open_button, fonksiyon() yap
değişken dialog = gui.filedialog_create()
gui.filedialog_set_filters(dialog, ["*.png", "*.jpg", "*.jpeg"])
değişken seçilen = gui.filedialog_show(dialog)
eğer seçilen ise yap
değişken dizin = fs.path_dirname(seçilen)
images = fs.dizin_listele(dizin)
images = images.filtrele(fonksiyon(f) yap
dön f.bitiyor_mu(".png") veya f.bitiyor_mu(".jpg")
son)
current_index = images.index_of(fs.path_basename(seçilen))
load_image(seçilen)
son
son)
// Navigasyon
gui.button_on_click(prev_button, fonksiyon() yap
eğer current_index > 0 ise yap
current_index = current_index - 1
load_image(images[current_index])
son
son)
gui.button_on_click(next_button, fonksiyon() yap
eğer current_index < images.uzunluk() - 1 ise yap
current_index = current_index + 1
load_image(images[current_index])
son
son)
// Layout
değişken button_box = gui.hbox_create()
gui.hbox_add(button_box, open_button)
gui.hbox_add(button_box, prev_button)
gui.hbox_add(button_box, next_button)
değişken main_box = gui.vbox_create()
gui.vbox_add(main_box, button_box)
gui.vbox_add(main_box, image_widget)
gui.window_set_content(pencere, main_box)
gui.window_show(pencere)
gui.app_run(app)