# Grafik Kullanıcı Arayüzü SSS

## Genel GKA Soruları

## Python için hangi GKA araç setleri var?

Python’un standart yapıları, tkinter adlı Tcl/Tk pencere öğesi kümesine yönelik nesne yönelimli bir arayüz içerir. Bu muhtemelen kurulumu ve kullanımı en kolay olanıdır (çünkü çoğu Python’ın ikili dağıtımlar kısmında bulunur) ve kullanılandır. Kaynak işaretçiler de dahil olmak üzere Tk hakkında daha fazla bilgi için Tcl/Tk ana sayfasına bakın. Tcl/Tk, macOS, Windows ve Unix platformlarına tamamen taşınabilir.

Hangi platformları hedeflediğinize bağlı olarak, birkaç alternatif de mevcuttur. Bir cross-platform listesi ve spesifik platform GKA çerçeveleri Python Wiki’de bulunabilir.

## Tkinter soruları

### Tkinter uygulamalarını nasıl dondurabilirim?

Dondurma işlemi, tek başına bağımsız uygulamalar oluşturmak için bir araçtır. Tkinter uygulamalarını dondururken, uygulama hala Tcl ve Tk kütüphanelerine ihtiyaç duyacağından, uygulamalar gerçekten bağımsız olmayacaktır.

One solution is to ship the application with the Tcl and Tk libraries, and point to them at run-time using the `TCL_LIBRARY` and `TK_LIBRARY` environment variables.

Gerçekten bağımsız uygulamalar elde etmek için kütüphaneyi oluşturan Tcl betiklerinin de uygulamaya entegre edilmesi gerekir. Bunu destekleyen araçlardan biri, Tix dağıtımının (http://tix.sourceforge.net/) ‘in bir parçası olan SAM’dir (bağımsız modüller).

Build Tix with SAM enabled, perform the appropriate call to `Tclsam_init()`, etc. inside Python’s `Modules/tkappinit.c`, and link with libtclsam and libtksam (you might include the Tix libraries as well).

### G/Ç’yi beklerken Tk olaylarını işleyebilir miyim?

On platforms other than Windows, yes, and you don’t even need threads! But you’ll have to restructure your I/O code a bit. Tk has the equivalent of Xt’s `XtAddInput()` call, which allows you to register a callback function which will be called from the Tk mainloop when I/O is possible on a file descriptor. See File Handlers.

### Tkinter’da çalışmak için anahtar bağlamalarını alamıyorum: neden?

An often-heard complaint is that event handlers bound to events with the `bind()` method don’t get handled even when the appropriate key is pressed.

En yaygın neden, bağlamanın uygulandığı pencere öğesinin “klavye odağına” sahip olmamasıdır. Focus komutu için Tk dokümantasyonuna bakın. Genellikle Wigdet’lara tıklanılarak klavye odağı verilir (ancak etiketler için değil; odak alma seçeneğine bakın).