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.

Çözümlerden biri, uygulamayı Tcl ve Tk kütüphaneleri ile birlikte göndermek ve çalışma zamanında TCL_LIBRARY ve TK_LIBRARY ortam değişkenlerini kullanarak onlara işaret etmektir.

To get truly stand-alone applications, the Tcl scripts that form the library have to be integrated into the application as well. One tool supporting that is SAM (stand-alone modules), which is part of the Tix distribution (http://tix.sourceforge.net/).

SAM etkinken Tix oluşturun, Python’un Modules/tkappinit.c içindeki Tclsam_init() vb. için uygun çağrıyı yapın ve libtclsam ve libtksam ile bağlantı kurun (Tix kütüphanelerini da dahil edebilirsiniz) ).

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

Windows dışındaki platformlarda, evet ve iş parçacığına bile ihtiyacınız yok! Ancak G/Ç kodunuzu tekrardan yapılandırmanız gerekecek. Tk, Xt’nin XtAddInput() çağrısına eşdeğerdir; bu, bir dosya tanıtıcısında G/Ç mümkün olduğunda Tk ana döngüsünden çağrılacak bir geri arama işlevini kaydetmenize olanak tanır. Bkz. File Handlers

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

Sıkça duyulan bir şikayet, bind() yöntemiyle olaylara bağlanan işleyicilerin uygun tuşa basıldığında bile işlenmemesidir.

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).